var processingURL = "https://book.malaysiaairlines.com/itd/itd/gad/DoAirSearch?";
var today		= new Date();
var dayArrayMed = new Array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');

function displayFaresMenu(panelName){
	$$(panelName + "Open").removeClass("GrabADealhideShow");
	$$(panelName + "Open").addClass("GrabADealhidePanel");
	
	$$(panelName + "Close").removeClass("GrabADealhidePanel");
	$$(panelName + "Close").addClass("GrabADealhideShow");
	
	$$(panelName + "Table").removeClass("GrabADealhidePanel");
	$$(panelName + "Table").addClass("GrabADealhideShow");
}

function closeFaresMenu(panelName){
	$$(panelName + "Close").removeClass("GrabADealhideShow");
	$$(panelName + "Close").addClass("GrabADealhidePanel");
	
	$$(panelName + "Open").removeClass("GrabADealhidePanel");
	$$(panelName + "Open").addClass("GrabADealhideShow");
	
	$$(panelName + "Table").removeClass("GrabADealhideShow");
	$$(panelName + "Table").addClass("GrabADealhidePanel");
}

/* ----------- Grab A Deal Functions ----------- */
function showForgotPw(status){
	if(status){
		$$("loginPanel").addClass("GTDhidePanel");
		$$("forgetPanel").removeClass("GTDhidePanel");	
	}
	else{
		$$("loginPanel").removeClass("GTDhidePanel");
		$$("forgetPanel").addClass("GTDhidePanel");	
	}
}

function checkNumInput(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
	
	if($$("family").checked){
		if (charCode == 8 || charCode == 46)
			return true;
		
		if (charCode > 31 && (charCode < 48 || charCode > 57))
			return false;
		else{
			if ($$("sgn_username").value.length < 7) 
				return true;
			else{
				alert("Please key in 7 digits Staff ID");
				return false;
			}
		}
		
	}
	else
		return true;
}

function checkLoginNumInput(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
	return true;
}

function forgotPW(){
	$$("forgotPw_email_Label").removeClass("error");
	
	if($$("forgotPw_email").value.length == 0){
		alert("Please enter your email.");
		$$("forgotPw_email_Label").addClass("error");
		return;
	}
	
	document.forgetForm.submit();
}

function gtdLogin(){
	// --- validate the forms fields ---
	if($$("login_username").value.length == 0){
		alert("Member ID is required.");
		return;
	}
	
	if($$("login_password").value.length == 0){
		alert("Password is required.");
		return;
	}
	
	document.loginForm.submit();
}

function CheckIsNumeric(strString) {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   for (i = 0; i < strString.length && blnResult == true; i++){
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         blnResult = false;
	}
   return blnResult;
}

function resetgtd(){
	document.regForm.reset();
}

function registergtd(){
	// --- reset all error labels first ---
	$$("sgn_firstname_Label").removeClass("error");
	$$("sgn_lastname_Label").removeClass("error");
	$$("sgn_nationality_Label").removeClass("error");
	$$("sgn_username_Label").removeClass("error");
	$$("sgn_email_Label").removeClass("error");
	$$("sgn_password_Label").removeClass("error");
	$$("sgn_conpassword_Label").removeClass("error");
	$$("sgn_agegroup_Label").removeClass("error");	
	$$("sgn_group_Label").removeClass("error");
	
	// --- validate the forms fields ---
	if($$("sgn_firstname").value.length == 0){
		alert("First name is required.");
		$$("sgn_firstname_Label").addClass("error");
		return;
	}
	
	if($$("sgn_lastname").value.length == 0){
		alert("Last name is required.");
		$$("sgn_lastname_Label").addClass("error");
		return;
	}
	
	if($$("sgn_nationality").value == ""){
		alert("Please select your country.");
		$$("sgn_nationality_Label").addClass("error");
		return;
	}
	
	if($$("sgn_agegroup").value == ""){
		alert("Please select your age group.");
		$$("sgn_agegroup_Label").addClass("error");
		return;
	}
	
	if( ($$("sgn_username").value.length == 0) || ($$("sgn_username").value == "Please key in Staff No")){
		if($$("family").checked)
			alert("Staff Number is required.");
		else
			alert("Member ID is required.");
			
		$$("sgn_username_Label").addClass("error");
		return;

	}
	
	// --- check email ---
	if(($$("sgn_email").value.length == 0) || ($$("sgn_email").value == "Please key in MAS email address")){
		alert("Email is required.");
		$$("sgn_email_Label").addClass("error");
		return;
	}else{
		var emailStr = $$("sgn_email").value;
		var at="@";
		var dot=".";
		var lat=emailStr.indexOf(at);
		var lstr=emailStr.length;
		var ldot=emailStr.indexOf(dot);
		var errorMsg = "Email Address format is wrong.";
		
		if (emailStr.indexOf(at)==-1){
		   alert(errorMsg);
		   $$("sgn_email_Label").addClass("error");
		   return;
		}

		if (emailStr.indexOf(at)==-1 || emailStr.indexOf(at)==0 || emailStr.indexOf(at)==lstr){
		   alert(errorMsg);
		   $$("sgn_email_Label").addClass("error");
		   return;
		}

		if (emailStr.indexOf(dot)==-1 || emailStr.indexOf(dot)==0 || emailStr.indexOf(dot)==lstr){
		   alert(errorMsg);
		   $$("sgn_email_Label").addClass("error");
		   return;
		}

		 if (emailStr.indexOf(at,(lat+1))!=-1){
		   alert(errorMsg);
		   $$("sgn_email_Label").addClass("error");
		   return;
		 }

		 if (emailStr.substring(lat-1,lat)==dot || emailStr.substring(lat+1,lat+2)==dot){
		   alert(errorMsg);
		   $$("sgn_email_Label").addClass("error");
		   return;
		 }

		 if (emailStr.indexOf(dot,(lat+2))==-1){
		   alert(errorMsg);
		   $$("sgn_email_Label").addClass("error");
		   return;
		 }
		
		 if (emailStr.indexOf(" ")!=-1){
		    alert(errorMsg);
			$$("sgn_email_Label").addClass("error");
		   	return;
		 }					
	}

 	// --- check password ---
 	if($$("sgn_password").value.length == 0){
		alert("Password is required.");
		$$("sgn_password_Label").addClass("error");
		return;
	}
 
 	if($$("sgn_conpassword").value.length == 0){
		alert("Please confirm your password.");
		$$("sgn_conpassword_Label").addClass("error");
		return;
	}
 
 	if($$("sgn_password").value != $$("sgn_conpassword").value){
		alert("Your passwords do not match.");
		$$("sgn_password_Label").addClass("error");
		$$("sgn_conpassword_Label").addClass("error");
		return;
	}
 	
	/* ------------------------------------------------
	// --------- Groups Check and validations ---------
	------------------------------------------------ */
	var groupSelected = 0;
	var groupsList = new Array("grads", "expats", "family", "media", "others", "travelTrade");
	var nowDate = new Date();
	var nowYear = nowDate.getFullYear();
	var userAgeGroup = $$("sgn_agegroup").value;
	
	// --- get total groups selected ---
	for( var i=0; i<groupsList.length; i++){
		if($$(groupsList[i]).checked)
			groupSelected += 1;
	}
 	
	if(groupSelected == 0){
		alert("Please select at least one group.");
		$$("sgn_group_Label").addClass("error");
		return;
	}else if( (groupSelected > 1) && ($$("others").checked) ){
		// --- If this group is selected, other groups cannot be selected ---
		alert("If 'Others' is selected, you're not allowed to select other pre-defined groups.");
		$$("sgn_group_Label").addClass("error");
		return;
	}else if( (groupSelected > 4) && (!$$("others").checked) ){
		alert("You can't be a member of more then 4 groups at the same time.");
		$$("sgn_group_Label").addClass("error");
		return;
	}
		
	// --- check for the student group ---
	if($$("grads").checked){
		//if(( userAge > 27 ) || (userAge < 12)){
		if((userAgeGroup != "12-20")&&(userAgeGroup != "21-27")){
			alert("You must be between the age of 12 to 27 years to subscribe as Student group.");
			$$("sgn_group_Label").addClass("error");
			return;
		}
	}
	
	// --- check for the Expat group ---
	if($$("expats").checked){
		//if( userAge < 21 ){
		if(userAgeGroup == "12-20"){
			alert("You must be at least the age of 21 years to subscribe as Expat.");
			$$("sgn_group_Label").addClass("error");
			return;
		}
	}
	
	// --- check for the Family group ---
	if($$("family").checked){
		if(groupSelected > 1){
			alert("If 'MASfamily' is selected, you're not allowed to select other pre-defined groups.");
			$$("sgn_group_Label").addClass("error");
			return;
		}
	}
	
	// --- check the Others group ---
	if($$("others").checked){
		if( ($$("sgn_others").value.length == 0) || ($$("sgn_others").value == "Please Specify") ){
			alert("Please specify your group.");
			$$("sgn_group_Label").addClass("error");
			return;
		}
	}
	
	// --- check the Media, Secretaries, travel groups ---
	if($$("media").checked || $$("travelTrade").checked || $$("family").checked){
		//if( userAge < 18 ){
		if( userAgeGroup == "12-20"){
			alert("You must be at least the age of 21 years to subscribe to this group.");
			$$("sgn_group_Label").addClass("error");
			return;
		}
	}
	
	document.regForm.submit();
}

function familySelected(){
	if($$("family").checked){
		$$("sgn_username_Label").innerHTML = "Staff Number";	
		$$("sgn_username").value = "Please key in Staff No";
		$$("sgn_email").value = "Please key in MAS email address";
	}
	else{
		$$("sgn_username_Label").innerHTML = "Member ID";
		
		if( ($$("sgn_username").value.length == 0) || $$("sgn_username").value == "Please key in Staff No" )
			$$("sgn_username").value = "";
		
		if( ($$("sgn_email").value.length == 0) || $$("sgn_email").value == "Please key in MAS email address" )
			$$("sgn_email").value = "";
	}
}
   
function disableInput(type){
	switch (type){
		case "others":
			if($$("sgn_others").disabled)
				$$("sgn_others").disabled = false;
			else
				$$("sgn_others").disabled = true;
			break;
	}
}

function clearDefault(type){
	switch (type){
		case "others":
			if($$("sgn_others").value == "Please Specify")
				$$("sgn_others").value = "";
			break;
		case "username":
			if($$("sgn_username").value == "Please key in Staff No")
				$$("sgn_username").value = "";
			break;
		case "email":
			if($$("sgn_email").value == "Please key in MAS email address")
				$$("sgn_email").value = "";
			break;
	}
}

function bookgtdfare(fromLoc, toLoc, dateFieldName){
	var processData = processingURL;
	processData += "_originSelected=Airport." + fromLoc;
	processData += "&_destinationSelected=Airport." + toLoc;
	
	var departDateStr = $$(dateFieldName).value;

	// --- Check depart and return dates ---
	if( departDateStr == "" ) {
		alert("Please preferred departure date.");
		return;
	}
		
	var departDay = departDateStr.substring(11,14);
	switch (departDay){
		case "Sun":
			departDay = 0;
			break;
		case "Mon":
			departDay = 1;
			break;
		case "Tue":
			departDay = 2;
			break;
		case "Wed":
			departDay = 3;
			break;
		case "Thu":
			departDay = 4;
			break;
		case "Fri":
			departDay = 5;
			break;
		case "Sat":
			departDay = 6;
			break;
	}
	
	var departDate 		= departDateStr.substring(0,2);
	var departMonthYear = departDateStr.substring(6,10) + "-" + departDateStr.substring(3,5);
	
	processData += ("&daysofweekselect1=" + departDay + "&");
	processData += ("_depdate.day=" + departDate + "&");
	processData += ("_depdate.monthyear=" + departMonthYear);
	processData += ("&_adults=1&_children=0&_infants=0&_tripType=OneWay&_classType=Economy");
	processData += ("&_gaduserid=" + gaduserid);
	
	document.getElementById('bookForm').innerHTML = "<input type='hidden' name='_originSelected' value='' /><input type='hidden' name='_destinationSelected' value='' /><input type='hidden' name='daysofweekselect1' value='' /><input type='hidden' name='_depdate.day' value='' /><input type='hidden' name='_depdate.monthyear' value='' /><input type='hidden' name='_adults' value='' /><input type='hidden' name='_children' value='' /><input type='hidden' name='_infants' value='' /><input type='hidden' name='_tripType' value='' /><input type='hidden' name='_classType' value='' /><input type='hidden' name='_gaduserid' value='' />";
	
	document.bookForm.action = processingURL;
	document.bookForm._originSelected.value = "Airport." + fromLoc;
	document.bookForm._destinationSelected.value = "Airport." + toLoc;
	document.bookForm.daysofweekselect1.value = departDay;	
	document.bookForm.elements["_depdate.day"].value = departDate;
	document.bookForm.elements["_depdate.monthyear"].value = departMonthYear;
	document.bookForm._adults.value = 1;
	document.bookForm._children.value = 0;
	document.bookForm._infants.value = 0;
	document.bookForm._tripType.value = "OneWay";
	document.bookForm._classType.value = "Economy";
	document.bookForm._gaduserid.value = gaduserid;
	
	document.bookForm.submit();
}