// ################################################## //
// ===============JavaScript Document================ //
// The belo functions handles modalbox form actions //
// ========created by santrooper@gmail.com=========== //
// ################################################## //


var gDir;
var geoCoder;
var drvDistKm = 0;
var oWebRoot  = getDomain();

// ################################################## //

function geoLatLonInit() {
	$(document).ready(function(){
		try{
			//geoCoder = new GClientGeocoder();
			gDir     = new GDirections();
		}
		catch(err){
			alert('google maps could not be loaded, please reload the page');	
		}
	});
}

function validateQuoteForm(){
	$(document).ready(function(){
		try{
			fromLocTyp    = jstrim($('#fromlocradid').val());
			fromLocVal    = jstrim($('#from_'+fromLocTyp).val());
			fromLocValExt = (fromLocTyp=='pin')?jstrim($('#from_pin_extn').val()):'';
			
			toLocTyp    = jstrim($('#tolocradid').val());
			toLocVal    = jstrim($('#to_'+toLocTyp).val());
			toLocValExt = (toLocTyp=='pin')?jstrim($('#to_pin_extn').val()):'';
			
			vehicleType = jstrim($('#vehicletype').val());
			
			//alert(fromLocTyp+' '+fromLocVal+' '+toLocTyp+' '+toLocVal);
			
			if( fromLocTyp!='' && fromLocVal!='' && toLocTyp!='' && toLocVal!='' && vehicleType!='' ){
				//alert(fromLocTyp+' '+fromLocVal+' '+toLocTyp+' '+toLocVal);
				
				var url = oWebRoot+'ajaxactions.php';
				var type = 'json';
				$.post( url, 
						{ajaxact:'chkcalculcdist', fromloctyp:fromLocTyp, fromlocval:fromLocVal, toloctyp:toLocTyp, tolocval:toLocVal, fromlocvalext:fromLocValExt, tolocvalext:toLocValExt, vehicletype:vehicleType},
						function (data, textStatus){ submitQuoteform(data, textStatus); },
						type
					  );
			}
			else{
				alert('Please ensure that all fields have been filled in correctly');
			}
		}
		catch(err){}
	});
}

function submitQuoteform(data, textStatus){
	$(document).ready(function(){
		//alert(data);
		try{
			var datObj = jQuery.secureEvalJSON(jQuery.toJSON(data));
			var status = textStatus;
			
			if( datObj && status=='success' ){
				formId = 'quoteform';
				flag = jstrim(datObj['flag']);
				//alert(flag);
				if(flag=='yes'){
					gRoad = "from: "+jstrim(datObj['latfrom'])+","+jstrim(datObj['lonfrom'])+" to: "+jstrim(datObj['latto'])+","+jstrim(datObj['lonto']);
					//alert(gRoad);
					rtn = calcLatLonRoadDistance(gRoad, formId);
				}
				else if(flag=='no'){
					$('#'+formId).submit();
				}
				else if(flag=='error'){
					alert(jstrim(datObj['msg']));	
				}
				else{
					alert('Please ensure that all fields have been filled in correctly');	
				}
			}
		}
		catch(err){}
	});
}

function calcLatLonRoadDistance(gRoad, formId){
	$(document).ready(function(){
		try{
			gDir.load(gRoad);
			
			GEvent.addListener(gDir, "load", function() {
				mtrDst    = gDir.getDistance().meters;
				drvDistKm = (mtrDst>0)?mtrDst / 1000:1;
				//alert(drvDistKm);
				$('#kmdistance').val(drvDistKm);
				$('#'+formId).submit();
			});
		}
		catch (err){
			alert('There was an error during the process');
		}
	});
}

// ################################################## //

function validateCarType(carFldId){
	$(document).ready(function(){
		try{
			carTyp     = jstrim($('#'+carFldId).val());
			
			fromLocTyp    = jstrim($('#fromlocradid').val());
			fromLocVal    = jstrim($('#from_'+fromLocTyp).val());
			fromLocValExt = (fromLocTyp=='pin')?jstrim($('#from_pin_extn').val()):'';
			
			toLocTyp    = jstrim($('#tolocradid').val());
			toLocVal    = jstrim($('#to_'+toLocTyp).val());
			toLocValExt = (toLocTyp=='pin')?jstrim($('#to_pin_extn').val()):'';
			//alert(fromLocTyp+' '+fromLocVal+' '+toLocTyp+' '+toLocVal);
			
			passengers  = jstrim($('#passengers').val());
			luggages    = jstrim($('#luggages').val());
			
			if( carTyp!='' && fromLocTyp!='' && fromLocVal!='' && toLocTyp!='' && toLocVal!='' && passengers!='' && luggages!='' ){
				var url = oWebRoot+'ajaxactions.php';
				var type = 'json';
				$.post( url, 
						{ajaxact:'validatecartype', cartyp:carTyp, fromloctyp:fromLocTyp, fromlocval:fromLocVal, toloctyp:toLocTyp, tolocval:toLocVal, fromlocvalext:fromLocValExt, tolocvalext:toLocValExt, passengers:passengers, luggages:luggages},
						function (data, textStatus){ carTypeValidated(data, textStatus); },
						type
					  );
			}
			else{
				$('#vehicle_1').attr('checked','checked');
				alert('Please ensure that all fields have been filled in correctly');
			}
		}
		catch(err){}
	});
}

function carTypeValidated(data, textStatus){
	$(document).ready(function(){
		//alert(data);
		try{
			var datObj = jQuery.secureEvalJSON(jQuery.toJSON(data));
			var status = textStatus;
			
			if( datObj && status=='success' ){
				formId = 'quoteform';
				flag = jstrim(datObj['flag']);
				
				if(flag=='deny'){
					$('#vehicle_1').attr('checked','checked');
					alert(jstrim(datObj['msg']));
				}
				else if(flag=='failed'){
					alert(jstrim(datObj['msg']));
				}
				
				$('#vehicletype').val(jstrim(datObj['cartyp']));
			}
		}
		catch(err){}
	});
}

// ################################################## //