var sessionvariable=false;

$("#loading").ajaxStart(function(){										
    if(loadpopup==false){
	   	showLoadPopup('loading');	
	}
});

$("#loading").ajaxStop(function(){    	
    if(loadpopup==false){								
        TB_remove();
	}
});

function findMakeByYear() {
		$(".quoteContent").html('');
		$("#nagsMake").html('<option value="_">Please Select</option>');
		$("#nagsModel").html('<option value="_">Please Select</option>');
		$("#nagsBodyStyle").html('<option value="_">Please Select</option>');
		$("#glassType").html('<option value="_">Please Select</option>');
			$("#nags_quote_type").html('<option value="_">Please Select</option>');
		$("#nagsMake").html("");
		
		if($("#nagsYear").val()=="_" && $("#nagsYear").val()=="") {
			alert("Please select year");
		} else {
			$.ajax({type: "GET", url: "../unrestricted/home.do?mode=make&year="+$("#nagsYear").val()+"&accessKey="+$("#accessKey").val()+"&_1="+Math.random(),dataType: "text",cache: false,success: function(response){				
						$("#nagsMake").html(response);
				 }
			});
		}
}

function findModelByMake() {
	$(".quoteContent").html("");
	$("#nagsModel").html('<option value="_">Please Select</option>');
	$("#nagsBodyStyle").html('<option value="_">Please Select</option>');
	$("#glassType").html('<option value="_">Please Select</option>');
        $("#nags_quote_type").html('<option value="_">Please Select</option>');
	if($("#nagsMake").val()=="_") {
		alert("Please select make");
	} else {
		$.ajax({type: "GET", url: "../unrestricted/home.do?mode=model&year="+$("#nagsYear").val()+"&make="+$("#nagsMake").val()+"&accessKey="+$("#accessKey").val()+"&_1="+Math.random(),dataType: "text",cache: false,success: function(response){				
					$("#nagsModel").html(response);
			 }
		});
	}
		
}

function findBodyStyleByModel() {
	$(".quoteContent").html("");
	$("#nagsBodyStyle").html('<option value="_">Please Select</option>');
	$("#glassType").html('<option value="_">Please Select</option>');
        $("#nags_quote_type").html('<option value="_">Please Select</option>');
	if($("#nagsModel").val()=="_") {
		alert("Please select model");
	} else {
		$.ajax({type: "GET", url: "../unrestricted/home.do?mode=bodystyle&year="+$("#nagsYear").val()+"&make="+$("#nagsMake").val()+"&model="+$("#nagsModel").val()+"&accessKey="+$("#accessKey").val()+"&_1="+Math.random(),dataType: "text",cache: false,success: function(response){				
					$("#nagsBodyStyle").html(response);
			 }
		});
	}
		
}

function findOpeningByBodyStyle() {
	$(".quoteContent").html("");
        $("#glassType").html('<option value="_">Please Select</option>');
        $("#nags_quote_type").html('<option value="_">Please Select</option>');
	if($("#nagsBodyStyle").val()=="_") {
		alert("Please select body style");
	} else {
		$.ajax({type: "GET", url: "../unrestricted/home.do?mode=opening&year="+$("#nagsYear").val()+"&make="+$("#nagsMake").val()+"&model="+$("#nagsModel").val()+"&bodyStyle="+$("#nagsBodyStyle").val()+"&accessKey="+$("#accessKey").val()+"&_1="+Math.random(),dataType: "text",cache: false,success: function(response){				
					$("#glassType").html(response);
			 }
		});
	}
}

function findQuoteTypeByOpening() {
	$(".quoteContent").html("");
        $("#nags_quote_type").html('<option value="_">Please Select</option>');
	if($("#zipCode").val()=="_"){
                alert("Please select zip code \n");
        }else {
		$.ajax({type: "GET", url: "../unrestricted/home.do?mode=getAllQuoteType&year="+$("#nagsYear").val()+"&make="+$("#nagsMake").val()+"&model="+$("#nagsModel").val()+"&bodyStyle="+$("#nagsBodyStyle").val()+"&opening="+$("#glassType").val()+"&zipCode="+$("#zipCode").val()+"&accessKey="+$("#accessKey").val()+"&_1="+Math.random(),dataType: "text",cache: false,success: function(response){
					$("#nags_quote_type").html(response);
			 }
		});
	}
}

function findPartNo() {
	$(".quoteContent").html("");
	var errMsg="";
	if($("#zipCode").val()=="") {
		errMsg=errMsg+"Please select zip code \n";
	} 
	if($("#zipCode").val().length!=5){
		errMsg=errMsg+"Zip code must be 5 digits \n";		
	}
	if(isInteger($("#zipCode").val())==false){
		errMsg=errMsg+"Zip code should in numbers \n";
	}
	if($("#nagsYear").val()=="_") {
		errMsg=errMsg+"Please select year \n";
	}
	if($("#nagsMake").val()=="_") {
		errMsg=errMsg+"Please select make \n";
	}
	if($("#nagsModel").val()=="_") {
		errMsg=errMsg+"Please select model \n";
	}
	if($("#nagsBodyStyle").val()=="_") {
		errMsg=errMsg+"Please select body style \n";
	}
	if($("#glassType").val()=="_") {
		errMsg=errMsg+"Please select glass type\n";
	}
        /*
        if($("#nags_quote_type").val()=="_") {
		errMsg=errMsg+"Please select quote type\n";
	}*/

	if(errMsg!="") {
		alert(errMsg);
		errMsg="";
	} else {
		$.ajax({type: "GET", url: "../unrestricted/quote.do?mode=partNo&year="+$("#nagsYear").val()+"&make="+$("#nagsMake").val()+"&model="+$("#nagsModel").val()+"&bodyStyle="+$("#nagsBodyStyle").val()+"&opening="+$("#glassType").val()+"&zipCode="+$("#zipCode").val()+"&accessKey="+$("#accessKey").val()+"&_1="+Math.random(),dataType: "text",cache: false,success: function(response){ 
					$(".quoteContent").html(response);
					window.location.href="#QuotePrice";
			 }
		});
	}	
}

function showScheduleJobPage(requirementId,initailAmount,type,deleteRequirement) {
	sessionvariable=true;
	post_to_url(httpUrl+"/unrestricted/schedule-job.do",{'requirementId':requirementId,'initailAmount':initailAmount,'type':type,'deleteRequirementId':deleteRequirement}); 
}

function showServiceTime() {
	
	var errMsg="";
	var today = new Date();
	var scheduleDate=document.getElementById('scheduleDate').value.split("-");
	var newScheduleDate=new Date(scheduleDate[0]+'/'+scheduleDate[1]+'/'+scheduleDate[2]);
	
	if(newScheduleDate<today){
		errMsg=errMsg+"Schedule date should be greater than today\n";	
	}
	
	if(errMsg!="") {
		alert(errMsg);
		errMsg="";
	} else {
		
		$.ajax({type: "GET", url: "../unrestricted/schedule-job.do?mode=findServiceTime&scheduleDate="+$("#scheduleDate").val()+"&_1="+Math.random(),dataType: "text",cache: false,success: function(response){ 
						$("#serviceTime").html(response);
				 }
		});
	}
}
function scheduleJob() {	
	var errMsg="";
	if($("#scheduleDate").val()=="") {
		errMsg=errMsg+"Please select Schedule date \n";
	}
	
	var today = new Date();
	var scheduleDate=document.getElementById('scheduleDate').value.split("-");
	var newScheduleDate=new Date(scheduleDate[0]+'/'+scheduleDate[1]+'/'+scheduleDate[2]);
        newScheduleDate.setHours(today.getHours());
		newScheduleDate.setMinutes(today.getMinutes());
		newScheduleDate.setSeconds(today.getSeconds());
		newScheduleDate.setMilliseconds(today.getMilliseconds());
	var serviceData=document.getElementById('serviceTime').options[document.getElementById('serviceTime').selectedIndex].text;	
    var serviceStartTime=$("#serviceTime").val().split("-")[0];

	if($("#scheduleDate").val()!="") {
            if(newScheduleDate<today){
                errMsg=errMsg+"Schedule date should be greater than or equals today\n";
            }
	}
	
	if($("#serviceTime").val()=="_") {
	    errMsg=errMsg+"Please Service time \n";
	}else if(newScheduleDate.getDate()==today.getDate() && newScheduleDate.getMonth()==today.getMonth() && newScheduleDate.getYear()==today.getYear()){
	    if(today.getHours()>serviceStartTime){
		errMsg=errMsg+"Service time should be greater than or equals current time.\n";
	    }
        }
	
	if(errMsg!="") {
		alert(errMsg);
		errMsg="";
	} else {
		$.ajax({type: "GET", url: "../unrestricted/schedule-job.do?mode=scheduleJob&scheduleDate="+$("#scheduleDate").val()+"&serviceTime="+$("#serviceTime").val()+"&serviceData="+serviceData+"&_1="+Math.random()+"&requirementId="+$("#requirementId").val(),dataType: "text",cache: false,success: function(response){
						TB_remove();																																																										 
						if(response==1){
							alert("Sorry this time is booked, please choose another time")
						}else{
							sessionvariable=true;
							window.location.href="../unrestricted/payment-setup.do?requirementId="+$("#requirementId").val();
						}
				 }
		});
	}
}




function makePayment(){
	var errMsg="";
	/*Validation for Name on Card*/
	if ((document.getElementById('nameOnCard').value==null)||(isBlank(document.getElementById('nameOnCard').value)==true)){	
			errMsg=errMsg+"Name should not be empty \n";
	}else if (isAlpha(document.getElementById('nameOnCard').value)==false){
			errMsg=errMsg+"Name should be alphabetic \n";
	}
	if(document.getElementById('cardType')){
	/*Validation for Card Type*/
	if(document.getElementById('cardType').value=="-") {
		errMsg=errMsg+"Please Select Card Type \n";		
	}
	
	/*Validation for CardNumber*/
	if ((document.getElementById('cardNumber').value==null)||(isBlank(document.getElementById('cardNumber').value)==true)){		
		errMsg=errMsg+"Please enter Card Number \n";		
	} else if(false==isBlank(document.getElementById('cardNumber').value) && document.getElementById('cardNumber').value!=null){
	    if((document.getElementById('cardNumber').value.length)!=16 && true==isInteger(document.getElementById('cardNumber').value)){
		  	errMsg=errMsg+"Card Number should have 16 digit \n";					
            } else if(false==isInteger(document.getElementById('cardNumber').value)){
                        errMsg=errMsg+"Card Number should be Integer \n";
            }
        }
	
	/*Validation for Expiration Date*/	
	if(document.getElementById('expirationDate').value==""){
		errMsg=errMsg+"Please select Expiration Date \n";	
	}else if(document.getElementById('expirationDate').value!="") {
		var monthArray = new Array();
		monthArray[0]=31;
		monthArray[1]=28;
		monthArray[2]=31;
		monthArray[3]=30;
		monthArray[4]=31;
		monthArray[5]=30;
		monthArray[6]=31;
		monthArray[7]=31;
		monthArray[8]=30;
		monthArray[9]=31;
		monthArray[10]=30;
		monthArray[11]=31;
	
		var expirationDate=document.getElementById('expirationDate').value.split("-")
	
		var expire = new Date();
		var date = new Date();
	
		var month = expirationDate[0]-1;
		var year = expirationDate[1];
	
		if(month==1 && year % 4 ==0){
			monthArray[1]=29;
		}
	
	
		/*Setting our own format for expirationDate*/
	
		expire.setFullYear(year);
		expire.setMonth(month);
		expire.setDate(monthArray[month]);
		expire=Date.parse(expire);
	
		month =date.getMonth()+1;
		year = date.getFullYear();
	
		if(month==12){
			month=0;
			date.setFullYear(year+1);
		}
		
		if(month==1 && year % 4 ==0){
			monthArray[1]=29;
		}
		date.setMonth(month)
		date.setDate(monthArray[month]);
	
		date =Date.parse(date);
		if(date>expire){
			errMsg=errMsg+"Please select valid Expiration Date \n";
		}	
        }

	/*Validation for CvvCode*/		
	if ((document.getElementById('cvvCode').value==null)||(isBlank(document.getElementById('cvvCode').value)==true)){		
		errMsg=errMsg+"Please enter CVV Code \n";			
	}else if (false==isInteger(document.getElementById('cvvCode').value)){
		errMsg=errMsg+"CVV Code should be Integer \n";			
	}else if(document.getElementById('cvvCode').value.length<=2){
		errMsg=errMsg+"CVV code should have 3 or 4 digits \n";			
	}
        }
	/*Validation for Billing Address*/
	if ((document.getElementById('billingStreetAddress').value==null)||(isBlank(document.getElementById('billingStreetAddress').value)==true)){		
		errMsg=errMsg+"Billing Address should not be empty \n";				
	}
	else if(false==streetCheck(document.getElementById('billingStreetAddress').value)) {
		errMsg=errMsg+"Please enter valid Street Address \n";	
	}
	
	/*Validation for City*/
	if ((document.getElementById('billingCityCode').value==null)||(isBlank(document.getElementById('billingCityCode').value)==true)){	
		errMsg=errMsg+"Please enter City Desc \n";		
	}else if (isAlpha(document.getElementById('billingCityCode').value)==false){
		errMsg=errMsg+"City Desc should be alphabetic \n";								
	}
	
	/* Validation for Billing Postal Code */
	
	if ((document.getElementById('billingPostalCode').value==null)||(isBlank(document.getElementById('billingPostalCode').value)==true)){	
			errMsg=errMsg+"Please enter Postal Code \n";											
	} else if(isInteger(document.getElementById('billingPostalCode').value)==false) {
			errMsg=errMsg+"Postal Code should be Integer\n";											
	} else if(document.getElementById('billingPostalCode').value.length>5) {
		errMsg=errMsg+"Postal Code should be 5 digit\n";
	}

        /*
	if ((document.getElementById('firstNumber').value==null)||(isBlank(document.getElementById('firstNumber').value)==true)){	
			errMsg=errMsg+"Please enter First Name \n";											
	} else if(isAlpha(document.getElementById('firstNumber').value)==false) {
			errMsg=errMsg+"First Name should be alphabetic\n";											
	} 
	
	if ((document.getElementById('lastNumber').value==null)||(isBlank(document.getElementById('lastNumber').value)==true)){	
			errMsg=errMsg+"Please enter Last Name \n";											
	} else if(isAlpha(document.getElementById('lastNumber').value)==false) {
			errMsg=errMsg+"Last Name should be alphabetic\n";											
	} 
	
	if ((document.getElementById('streetAddress').value==null)||(isBlank(document.getElementById('streetAddress').value)==true)){	
			errMsg=errMsg+"Please enter Street Address \n";											
	}
	
	if (document.getElementById('stateId').value==null){	
			errMsg=errMsg+"Please select state \n";											
	}
	
	if ((document.getElementById('cityCode').value==null)||(isBlank(document.getElementById('cityCode').value)==true)){	
			errMsg=errMsg+"Please enter city \n";											
	} else if(isAlpha(document.getElementById('cityCode').value)==false) {
			errMsg=errMsg+"City should be alphabetic\n";											
	} 
	
	if ((document.getElementById('postalCode').value==null)||(isBlank(document.getElementById('postalCode').value)==true)){	
			errMsg=errMsg+"Please enter Postal Code \n";											
	} else if(isInteger(document.getElementById('postalCode').value)==false) {
			errMsg=errMsg+"Postal Code should be Integer\n";											
	} else if(document.getElementById('postalCode').value.length<5) {
		errMsg=errMsg+"Postal Code should have 5 digits\n";
	}*/
	
	if ((document.getElementById('phoneNumber').value==null)||(isBlank(document.getElementById('phoneNumber').value)==true)){	
			errMsg=errMsg+"Please enter phone number \n";											
	} else if(isInteger(document.getElementById('phoneNumber').value)==false) {
			errMsg=errMsg+"Phone Number should be Integer\n";											
	} else if(document.getElementById('phoneNumber').value.length<10) {
		errMsg=errMsg+"Phone Number should have 10 digits\n";
	}
	
	if ((document.getElementById('emailAddress').value==null)||(isBlank(document.getElementById('emailAddress').value)==true)){	
			errMsg=errMsg+"Please enter your Email Address \n";											
	} else if(eCheck(document.getElementById('emailAddress').value)==false) {
			errMsg=errMsg+"Invalid Email Address\n";											
	} 
	
	if(errMsg!=""){			
		alert(errMsg);
	}else{
			document.getElementById("billingCountryDesc").value=document.getElementById('billingCountryCode').options[document.getElementById('billingCountryCode').selectedIndex].text; 
			document.getElementById("billingStateDesc").value=document.getElementById('billingStateCode').options[document.getElementById('billingStateCode').selectedIndex].text; 
			document.getElementById("billingCityDesc").value=document.getElementById("billingCityCode").value;
			sessionvariable=true;
			document.forms[0].submit();
		}
}

function changeExpirationDate(){
		document.getElementById('expirationDate').value=document.getElementById('month').value+"-"+document.getElementById('year').value;
}

function confirmOrder(){
	//showLoadPopup('prograssBar');	
	sessionvariable=true;
	window.location.href=httpUrl+"/unrestricted/confirmorder.do?mode=submit&requirementId="+$("#requirementId").val();
}

function goBackToScheduleJob() {
	sessionvariable=true;
	window.location.href=httpUrl+"/unrestricted/schedule-job.do?mode=back&requirementId="+$("#requirementId").val();
}


function isInteger(val){
 	if (isBlank(val)){return false;}
 	for(var i=0;i<val.length;i++)
 	   {
 	   if(!isDigit(val.charAt(i))){return false;}
           }
 	   return true;
}
function isDigit(num) {
 	if (num.length>1){return false;}
 	var string="1234567890";
 	if (string.indexOf(num)!=-1){return true;}
 	return false;
}
function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) 
	   {
		   if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
	   }
	   return true;
}

function isAlpha(val){
    var regexp = /([!#$%^&*=(+\-.{`~})?_@|'":;<>,\\\/\[\]0-9]+)/
    if(val.match(regexp)!=null){
            return false;
    }
    return true;
}

function streetCheck(address)
{

       // var regexp = /([\\!$%^+&*|=({`~})?_@'";<>\[\]]+)/
	    var regexp = /([\\!$%^+&*|={`~}?_@;<>\[\]]+)/
	if(address.match(regexp)!=null)
	{
		return false
	}
	var regexp = /([_\-\/.,'"):]+)/
	if(((address.charAt(0)+"").match(regexp))!=null)
	{
		return false;
	}
	if(address.match(/(#)/))
	{
		var b=address.indexOf(RegExp.$1)
		if(b==0)
		{
			if((address.substring(b+1,b+2).match(/[a-z|A-Z]+/))!=null )
			{
			     return false;
			}
		}
		else
		{
			if((address.substring(b+1,b+2).match(/[a-z|A-Z]+/))!=null || (address.substring(b,b-1).match(/[0-9]+/))!=null )
			{
			     return false;
			}
		}
		if (address.substring(b+1,address.length).match(/(#)/))
		{
		        return false
		}
	}
	if(address.match(/(\/)/))
	{
		var b=address.indexOf(RegExp.$1)
		if((address.substring(b+1,b+2).match(/[a-z|A-Z]+/))!=null || (address.substring(b,b-1).match(/[a-z|A-Z]+/))!=null )
		{
		     return false;
		}
		if (address.substring(b+1,address.length).match(/(\/)/))
		{
		     return false
		}
	}
	if(address.match(/(:)/))
	{
		var b=address.indexOf(RegExp.$1)
		if((address.substring(b+1,b+2).match(/[a-z|A-Z]+/))!=null || (address.substring(b,b-1).match(/[0-9]+/))!=null )
		{
		     return false;
		}
		if (address.substring(b+1,address.length).match(/(:)/))
		{
	     		return false
		}
	}
	//For not Repeating
	var regexp = /(\-)/
	address.match(regexp)
	var b=address.indexOf(RegExp.$1)
	if (address.substring(b+1,address.length).match(regexp))
	{
	     return false
	}
	// For not to display Continuosly
	var regexp = /([_\-\/.,:#]+)/
	address.match(regexp)
	var b=address.indexOf(RegExp.$1)
	if((address.substring(b+1,b+2).match(regexp))!=null)
	{
		return false;
	}
	 return true;
}



function showChatPage(){	
	window.open(httpUrl+"/unrestricted/chat.do","mywindow","status=1,width=350,height=150");
}

function eCheck(str){

	var at="@"
	var dot="."
	var underscr="_"
	var lat=str.indexOf(at)
	var lunderscr=str.indexOf(underscr)
	var lstr=str.length
	var ldot=str.indexOf(dot)	
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 )
	{
		     return false
	}	
	if(true==isInteger(str.charAt(0)+""))
	{
		     return false
	}
	
	if (str.indexOf(underscr)==0 )
	{
		     return false
	}
	if (str.substring(lunderscr+1,lstr).match(/_/)!=null)
	{
		     return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0)
	{
		     return false
	}
	if (str.indexOf(at,(lat+1))!=-1)
	{
		     return false
	}
	if (str.charAt(lstr-1)==dot)
	{
		     return false
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	{
		     return false
    }
	if (str.substring(ldot-1,ldot)==dot || str.substring(ldot+1,ldot+2)==underscr)
	{
		     return false
    }
	if (str.substring(ldot-1,ldot)==underscr || str.substring(ldot+1,ldot+2)==dot)
	{
		     return false
    }
	
    if (str.substring(lat-1,lat)==underscr || str.substring(lat+1,lat+2)==underscr)
	{
	             return false
	}
        if (str.substring(lat,lstr).match(/(_)/)!=null)
	{
		     return false
	}
	var regexp = /(\.)/
	str.match(regexp)
	var b=str.indexOf(RegExp.$1)
	if((str.substring(b+1,b+2).match(regexp))!=null)
	{
		     return false;
	}	
	var b =str.substring(lstr,lstr-4)
	var regexp = /([0-9])/
	if(b.match(regexp)!=null)
	{
		     return false
	}
	if (str.indexOf(dot,(lat+2))==-1)
	{
		    return false
	}
	if (str.indexOf(" ")!=-1)
	 {
		    return false
	 }
	var regexp = /([!#$%^&*({|`~+=}\-)?'":;<>,\/\/\[\\\]]+)/
	if(str.match(regexp)!=null)
	{
	            return false
	}
    return true;
}

function trim(str){
return str.replace(/^\s*|\s*$/g,"");
}

function post_to_url(path, params, method) {
    method = method || "post"; // Set method to post by default, if not specified.
    
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);

    for(var key in params) {  
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", params[key]);
        form.appendChild(hiddenField);
    }
    document.body.appendChild(form);    
    form.submit();
}

function generateQuotePdf(){
	sessionvariable=true;
    window.location.href=httpUrl+"/unrestricted/quote-details-form.pdf?requirementId="+$("#requirementId").val();
    //window.open(httpUrl+"/unrestricted/quote-details-form.pdf");
}

window.onbeforeunload = unLoadFunc;
function unLoadFunc() {
	if(sessionvariable==false) {
		var requirementId="";
		if($("#requirementId")!=null && $("#requirementId").val()!=undefined){
			requirementId="&requirementId="+$("#requirementId").val();
		}
		if($("#requirementId1")!=null && $("#requirementId1").val()!=undefined){
			requirementId = requirementId + "&requirementId1="+$("#requirementId1").val();
		}	
		$.ajax({type: "GET", url: "../unrestricted/home.do?mode=clearSession"+requirementId+"&_1="+Math.random()+"&requirementId="+$("#requirementId").val(),dataType: "text",cache: false,success: function(response){
			}
		});		
	}
}

function post_request_to(url){
	sessionvariable=true;
	window.location.href=url;
}

