var requiredFields=new Array();
var resetFields=new Array();
function checkRequirements(){
	var missingFields=new Array();
	var incompatibleFields=new Array();
	if($('#acceptterms').attr('checked')!=true)	{
		alert('In order to create your journey, you have to accept Matiana Travel\'s Disclaimers and Policies!');
		return false;
	}
	
	
	if (requiredFields.length <= 0) 
		return true;
	for (var k in requiredFields)	{
		if ($('#' + requiredFields[k][0] + 'Required').css('visibility') == 'hidden') {
				requiredNatural(requiredFields[k][0]);
				continue;
			}
		if (requiredFields[k][1] == 2) {
			var i = 0;
			var currentChecked = false;
			var objString = requiredFields[k][0] + '_';
			while ($('#' + objString + i) != 'undefined' && $('#' + objString + i) != undefined && $('#' + objString + i).attr('id') != 'undefined' && $('#' + objString + i).attr('id') != undefined) {
			
				if ($('#' + objString + i).attr('checked') != undefined && ($('#' + objString + i).attr('checked') == 'checked' || $('#' + objString + i).attr('checked') == true)) {
				
					//alert(objString+': isaretli var');
					currentChecked = true;
					break;
				}
				i++;
			}
			if (currentChecked) {
				
				requiredOK(requiredFields[k][0]);
				//$('#' + requiredFields[k][0] + 'Required').attr('class','requiredOKText');
				continue;
			}
			else {
				missingFields[missingFields.length] = requiredFields[k][0];
				//$('#' + requiredFields[k][0] + 'Required').attr('class','requiredWarn');
				requiredMissing(requiredFields[k][0]);
			}
		}
		else {
			if ($('#' + requiredFields[k][0]).attr('value') == undefined || $('#' + requiredFields[k][0]).attr('value') == 'undefined' || $('#' + requiredFields[k][0]).attr('value') == null || $('#' + requiredFields[k][0]).attr('value') == '') {
				requiredMissing(requiredFields[k][0]);
				missingFields[missingFields.length] = requiredFields[k][0];
			}
			else	{
				if (requiredFields[k][0] == 'emailaddress') {
					if (epostaDenetle($('#' + requiredFields[k][0]).attr('value')) == false) {
						incompatibleFields[incompatibleFields.length] = requiredFields[k][0];
						requiredInvalid(requiredFields[k][0], 'Please enter a valid e-mail address');
					}
					else
						requiredOK(requiredFields[k][0]);
				}
				else 
					if (requiredFields[k][0] == 'phone' || requiredFields[k][0] == 'fax' || requiredFields[k][0] == 'cellular') {
						if (telefonDenetle($('#' + requiredFields[k][0]).attr('value')) == false) {
							incompatibleFields[incompatibleFields.length] = requiredFields[k][0];
							requiredInvalid(requiredFields[k][0], 'Please enter a valid phone number');
						}
						else
							requiredOK(requiredFields[k][0]);
					}
					else 
						if (requiredFields[k][0] == 'totalpeople' || requiredFields[k][0] == 'numberofdays') {
							if (isNaN($('#' + requiredFields[k][0]).attr('value')) || parseInt($('#' + requiredFields[k][0]).attr('value'))!==($('#' + requiredFields[k][0]).attr('value')-0)) {
								incompatibleFields[incompatibleFields.length] = requiredFields[k][0];
								requiredInvalid(requiredFields[k][0], 'Please enter an integer');
							}
							else
								requiredOK(requiredFields[k][0]);
						}
						else 
							requiredOK(requiredFields[k][0]);
						/*
						 * Tarihler için bir kontrol eklenebilir.
						 */
				
			}
		}
	}
	
		errormessage='';
		if(missingFields.length>0){
			errormessage+='Some required information is missing, please complete all the required fields.';
		}	
		if(incompatibleFields.length>0)	{
			if(errormessage.length>0)
				errormessage+="\r\nAdditionally;\r\n";
			errormessage+='Some information you provided is not appropriate, please correct any invalid or incompatible entries.';
		}
		
		if (errormessage.length>0)	{
			alert(errormessage);
			return false;
		}
		else
			return true;
}


function resetFieldsList()	{
		$('.requiredOKText').attr('class','requiredText');
		$('.requiredWarn').attr('class','requiredText');
		$('.requiredText').text('required');
		for (i in resetFields) {
			if (resetFields[i].attr('class') != 'locationCheckbox') 
				resetFields[i].trigger('click');
			else {
				if (resetFields[i].attr('checked') != true) {
					locationresett(resetFields[i]);
					//alert(resetFields[i].attr('checked'));
				}
			}

		}
}

function requiredNatural(fieldID){
	$('#'+fieldID+'Required').attr('class','requiredText');
	$('#'+fieldID+'Required').text('required');
}
function requiredOK(fieldID){
	$('#'+fieldID+'Required').attr('class','requiredOKText');
	$('#'+fieldID+'Required').text('required');
}
function requiredMissing(fieldID){
	$('#'+fieldID+'Required').attr('class','requiredWarn');
	$('#'+fieldID+'Required').text('required');
}
function requiredInvalid(fieldID,errorString){
	$('#'+fieldID+'Required').attr('class','requiredWarn');
	if(errorString==undefined || errorString=='undefined' || errorString=='' || errorString==null)
		$('#'+fieldID+'Required').text('Please enter valid data');
	else
		$('#'+fieldID+'Required').text(errorString);
}


function epostaDenetle(adr) {
    var epostaBicem= /^\w+(\.\w+)*@[A-Za-z0-9]+(\.?\-?\w+)*(\.[A-Za-z]{2,4})$/;
    if(!epostaBicem.test(adr))
        return false;
    return true;
}

function telefonDenetle(no) {
    var telefonBicem= /^([0-9\+\(\)]){3,24}$/;
    if(!telefonBicem.test(no))
        return false;
    return true;
}
function otherselected(elmt){
	$(elmt).prev().prev().attr('checked','checked');
}

 function otherleft(elmt)	{
 	if($(elmt).attr('value')=='' || $(elmt).attr('value')==undefined || $(elmt).attr('value')==null)
		$(elmt).prev().prev().removeAttr('checked');
 }
 
 function chgduration(elmt){
	if ($(elmt).attr('value') == 'fixed') {
		if($('#departuredate').attr('disabled')!=undefined)
			$('#departuredate').removeAttr('disabled');
		if($('#arrivaldate').attr('disabled')!=undefined)
			$('#arrivaldate').removeAttr('disabled');
		$('#numberofdays').attr('disabled','disabled');
		
		$('#preferredseason_0').attr('disabled','disabled');
		$('#preferredseason_1').attr('disabled','disabled');
		$('#preferredseason_2').attr('disabled','disabled');
		$('#preferredseason_3').attr('disabled','disabled');
		
		$('#numberofdaysRequired').css('visibility','hidden');
		$('#arrivaldateRequired').css('visibility','visible');
		$('#departuredateRequired').css('visibility','visible');
	}
	else	{
		if($('#numberofdays').attr('disabled')!=undefined)
			$('#numberofdays').removeAttr('disabled');
		
		if($('#preferredseason_0').attr('disabled')!=undefined)
			$('#preferredseason_0').removeAttr('disabled');
		if($('#preferredseason_1').attr('disabled')!=undefined)
			$('#preferredseason_1').removeAttr('disabled');
		if($('#preferredseason_2').attr('disabled')!=undefined)
			$('#preferredseason_2').removeAttr('disabled');
		if($('#preferredseason_3').attr('disabled')!=undefined)
			$('#preferredseason_3').removeAttr('disabled');
		
		$('#arrivaldate').attr('disabled','disabled');
		$('#departuredate').attr('disabled','disabled');
		
		$('#numberofdaysRequired').css('visibility','visible');
		$('#arrivaldateRequired').css('visibility','hidden');
		$('#departuredateRequired').css('visibility','hidden');
		
	}
}

function chglocations(elmt){
	if($(elmt).attr('value')=='suggestme')	{
		$('.location').children('input').attr('disabled','disabled');
		$('#otherlocations').attr('disabled','disabled');
		$('#locationRequired').css('visibility','hidden');
		$('.mappin').unbind('click');
		$('.mappin').attr('class','mappinDisabled');
	}
	else	{
		$('.location').children('input').removeAttr('disabled');
		$('#otherlocations').removeAttr('disabled');
		$('#locationRequired').css('visibility','visible');
		$('.mappinDisabled').attr('class','mappin');
		$('.mappin').unbind('click');
		$('.mappin').bind('click',function(e){
			mappinClicked($(this));
		});
		
	}
	;
}

function chgrsrv(elmt){
	if($(elmt).attr('value')=='no')	{
		$('.accomodationtype').attr('disabled','disabled');
		$('.accomodationquality').attr('disabled','disabled');
		$('.amenities').attr('disabled','disabled');
		$('#accomodationtypeRequired').css('visibility','hidden');
		$('#accomodationqualityRequired').css('visibility','hidden');
		$('#amenitiesRequired').css('visibility','hidden');
	}
	else	{
		$('.accomodationtype').removeAttr('disabled');
		$('.accomodationquality').removeAttr('disabled');
		$('.amenities').removeAttr('disabled');
		$('#accomodationtypeRequired').css('visibility','visible');
		$('#accomodationqualityRequired').css('visibility','visible');
		$('#amenitiesRequired').css('visibility','visible');
	}
	;
}

function checkdates(elmt)	{
	if($('#arrivaldate').attr('value')=='' || $('#arrivaldate').attr('value')==undefined ||
	$('#arrivaldate').attr('value')=='undefined' || $('#arrivaldate').attr('value')==null || $('#arrivaldate').attr('value')=='null' ||
	$('#departuredate').attr('value')=='' || $('#departuredate').attr('value')==undefined ||
	$('#departuredate').attr('value')=='undefined' || $('#departuredate').attr('value')==null || $('#departuredate').attr('value')=='null')
		return;
	
	dateP=$('#arrivaldate').attr('value').split('/');
	var arrivalD=dateP[2]+dateP[0]+dateP[1];
	dateP=$('#departuredate').attr('value').split('/');
	var departureD=dateP[2]+dateP[0]+dateP[1];
	
	if(departureD<=arrivalD)	{
		alert('Departure date should be later than arrival date!');
		$(elmt).focus();
		return;
	}
	return;
}


$(document).ready(function() {
	$("#arrivaldate").datepicker({minDate: +1});
	$("#departuredate").datepicker({minDate: +1});
	
	//$('.mappin').attr('onclick','javascript: mappinClicked(this);');
	$('.mappin').bind('click',function(e){
		mappinClicked($(this));
	});

	
	$(".requiredText").each(function() {
		var idString=$(this).attr('id').replace('Required','')
		//alert(idString);
		var curObj=$('#'+idString);  
 		//alert(curObj.attr('id'));
		//alert(idString+':'+curObj);
		
		if(curObj!='undefined' && curObj!=undefined && curObj.attr('id')!='undefined' && curObj.attr('id')!=undefined)
		  	//alert(idString+':'+curObj.css('visibility'));
			requiredFields[requiredFields.length]=new Array(idString,1);
		else {
			curObj=$('#'+idString+'_0');
			if(curObj!='undefined' && curObj!=undefined && curObj.attr('id')!='undefined' && curObj.attr('id')!=undefined)
		  		//alert(idString+':'+curObj.css('visibility'));
				requiredFields[requiredFields.length]=new Array(idString,2);
			else
				alert('An error has occurred. You might be able to continue, however, if you encounter any errors please try again.');
		}
 	
	});
	
	
	$(".locationCheckbox").each(function() {
		var ischecked=$(this).attr('checked');
		var curId=$(this).attr('id')
		if(ischecked!=undefined && ischecked==true){
			locationclicked($(this));
			resetFields[resetFields.length] = $(this);
		}
		
	});
	
	if ($('#stayduration_1').attr('checked') == true) {
		$('#stayduration_1').trigger('click');
		resetFields[resetFields.length] = $('#stayduration_1');
	}
	else 
		if ($('#stayduration_0').attr('checked') == true) {
			$('#stayduration_0').trigger('click');
			resetFields[resetFields.length] = $('#stayduration_0');
		}
		
	if ($('#hotelreservation_1').attr('checked') == true) {
		$('#hotelreservation_1').trigger('click');
		resetFields[resetFields.length] = $('#hotelreservation_1');
	}
	else 
		if ($('#hotelreservation_0').attr('checked') == true) {
			$('#hotelreservation_0').trigger('click');
			resetFields[resetFields.length] = $('#hotelreservation_0');
		}
		
	if ($('#locationstovisit_1').attr('checked') == true) {
		$('#locationstovisit_1').trigger('click');
		resetFields[resetFields.length] = $('#locationstovisit_1');
	}
	else 
		if ($('#locationstovisit_0').attr('checked') == true) {
			$('#locationstovisit_0').trigger('click');
			resetFields[resetFields.length] = $('#locationstovisit_0');
		}

	
	
});

function mappinClicked(elmt)	{
	curId=$(elmt).attr('id').substr(4);
	//alert(curId);
	if(curId=='tokat')
		var $mapID='amasya';
	else	
		var $mapID=curId;
	
	
	var locationElmt=$('#'+mapLocList[$mapID]);
	//alert(locationElmt.attr('id'));
	var ischecked=locationElmt.attr('checked');
	if(ischecked==false || ischecked==undefined)	{
		locationElmt.attr('checked','true');
		$('#pin_'+curId).attr('src','img/pinsecilmis.gif') ;
		$('#map_'+curId).css('color','#990000');
		if(curId=='tokat')	{
			$('#pin_amasya').attr('src','img/pinsecilmis.gif') ;
			$('#map_amasya').css('color','#990000');
		}
		if(curId=='amasya')	{
			$('#map_tokat').css('color','#990000');
			$('#pin_tokat').attr('src','img/pinsecilmis.gif') ;
		}
		
	}
	else	{
		locationElmt.removeAttr('checked');
		$('#map_'+curId).css('color','#000044');
		$('#pin_'+curId).attr('src','img/pinsecilmemis.gif') ;
		if(curId=='tokat')	{
			$('#map_amasya').css('color','#000044');
			$('#pin_amasya').attr('src','img/pinsecilmemis.gif') ;
		}
		if(curId=='amasya')	{
			$('#map_tokat').css('color','#000044');
			$('#pin_tokat').attr('src','img/pinsecilmemis.gif') ;
		}
	}
	
	
}


function locationclicked(elmt){
	curId=$(elmt).attr('value');
	ischecked=$(elmt).attr('checked');
	if(ischecked==false || ischecked==undefined)	{
		$('#pin_'+curId).attr('src','img/pinsecilmemis.gif') ;
		$('#map_'+curId).css('color','#000044');
		if (curId == 'amasya') {
			$('#pin_tokat').attr('src', 'img/pinsecilmemis.gif');
			$('#map_tokat').css('color','#000044');
		}
	}
	else	{
		$('#pin_'+curId).attr('src','img/pinsecilmis.gif') ;
		$('#map_'+curId).css('color','#990000');
		if (curId == 'amasya') {
			$('#pin_tokat').attr('src', 'img/pinsecilmis.gif');
			$('#map_tokat').css('color','#990000');
		}
	}
}

function locationresett(elmt){
	curId=elmt.attr('value');
	ischecked=elmt.attr('checked');
		$('#pin_'+curId).attr('src','img/pinsecilmis.gif') ;
		if(curId=='amasya')
			$('#pin_tokat').attr('src','img/pinsecilmis.gif') ;
	
}