﻿function DisplayError( strErrResult ) {
	var arrayError = strErrResult.split(",");
	//alert(strErrResult);
	for(var i = 0; i < arrayError.length; i++){
		toggleBlockControl( 'err_' + arrayError[i], '1' );
	  /*
	  if( document.getElementById( arrayError[i] ) ) {
	  	if ( document.getElementById( arrayError[i] ).tagName == 'INPUT' || document.getElementById( arrayError[i] ).tagName == 'SELECT' || document.getElementById( arrayError[i] ).tagName == 'TEXTAREA' ) {
	  		//alert(document.getElementById( arrayError[i] ));
	  		//document.getElementById( arrayError[i] ).className = "dispError";
	  	}
	  }
	  */
	}
	toggleBlockControl( 'err_main', '1' );
}

function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

    return true;
}


function PostFormHandling(strResult) {
	var arrayResult = strResult.split(",");
	
	var strFormName = arrayResult[0];
	var strLayerName = arrayResult[1];
	var strErrorExist = arrayResult[2];
	
	if ( strErrorExist == '0' ) {
		// form post succeeded, problem here (expand is null ??)
		//toggleBlockControl( strLayerName , '0');
		
		// --- CSS manipulation - called from cssMod.js ---
		var formLayerClass = getCSSRule('.' + strLayerName);
		formLayerClass.style.display='none';
		displayForm2('/_includes/thankyou.html');
	}
	else {
		DisplayError(strResult);
	}
}

function GetFormElemString ( objForm ) {
	var poststr = "";
	var strJoin = "";
	var elemValue;
	var elem = objForm.elements;
	
	for(var i = 0; i < elem.length; i++)
	{
		elemValue = "";

		if ( poststr.length > 0 ) {
			strJoin = "&";
		} 
		if( elem[i].type == "checkbox" || elem[i].type == "radio" ) {
			if ( elem[i].checked == true ) {
				elemValue = elem[i].value;
				poststr = poststr + strJoin + elem[i].name + "=" + escape( elemValue );
			} 
		}
		else {
			elemValue = elem[i].value;
			poststr = poststr + strJoin + elem[i].name + "=" + escape( elemValue );
		}		
	}	
	
	return poststr;
}

function DisplayError2( strErrResult ) {
	var arrayError = strErrResult.split(",");
	//alert(strErrResult);
	for(var i = 0; i < arrayError.length; i++){
		toggleBlockControl( 'err_' + arrayError[i], '1' );
	}
	//toggleBlockControl( 'err_main', '1' );
}


function ResetErrorTDPage1() {
	strFormFields = "f_td_salution,f_td_email,f_td_name,f_td_nric,f_td_occupation,f_td_current_make,f_td_current_model,f_td_duration_plan,f_td_model_request,f_td_state,main";
	
	var arrayError = strFormFields.split(",");
	//alert(strErrResult);
	for(var i = 0; i < arrayError.length; i++){
		toggleBlockControl( 'err_' + arrayError[i], 0 );
	}
}


function ResetErrorTDPage2() {
	strFormFields = "f_td_tesdrive_date,f_td_contact_number,f_td_preferred_time,f_td_contact_personnel,f_td_contact_personnel_number,main2";
	
	var arrayError = strFormFields.split(",");
	//alert(strErrResult);
	for(var i = 0; i < arrayError.length; i++){
		toggleBlockControl( 'err_' + arrayError[i], 0 );
	}
}

function ResetErrorBR() {
	strFormFields = "f_br_salution,f_br_email,f_br_occu,f_br_name,f_br_model,f_br_address,f_br_postcode,f_br_state,main";
	
	var arrayError = strFormFields.split(",");
	//alert(strErrResult);
	for(var i = 0; i < arrayError.length; i++){
		toggleBlockControl( 'err_' + arrayError[i], 0 );
	}
}

function ResetErrorBR2() {
    strFormFields = "f_br_salution,f_br_name,f_br_email,f_br_contact_num,main";
	
	var arrayError = strFormFields.split(",");
	//alert(strErrResult);
	for(var i = 0; i < arrayError.length; i++){
		toggleBlockControl( 'err_' + arrayError[i], 0 );
	}
}

function ResetErrorGU() {
	strFormFields = "f_gu_email,main";
	
	var arrayError = strFormFields.split(",");
	//alert(strErrResult);
	for(var i = 0; i < arrayError.length; i++){
		toggleBlockControl( 'err_' + arrayError[i], 0 );
	}
}

function ResetErrorCU() {
	strFormFields = "f_name,f_email,f_purpose,f_help,f_chkcallme,f_phone,f_state,main";
	
	var arrayError = strFormFields.split(",");
	//alert(strErrResult);
	for(var i = 0; i < arrayError.length; i++){
		toggleBlockControl( 'err_' + arrayError[i], 0 );
	}
}


function appendList( strList, strToAppend ) {
	var strReturn = "";
	
	if ( strList.length  > 0 ) {
		strReturn = strList + "," + strToAppend;
	} else {
		strReturn = strToAppend;
	}
	
	return strReturn;
}

function validateEmail( strEmail ) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   return reg.test(strEmail);
}

function checkDate( strYear, strMonth, strDay ) {	
    var DateVal = strMonth + "/" + strDay + "/" + strYear;
    var dt = new Date(DateVal);

    if(dt.getDate()!=strDay){
        return(false);
        }
    else if(dt.getMonth()!=strMonth-1){
    //this is for the purpose JavaScript starts the month from 0
        return(false);
        }
    else if(dt.getFullYear()!=strYear){
        return(false);
        }
        
    return(true);
}
    	
function formValidateTDPage1(){
	ResetErrorTDPage1(); 
	
	var errorFields = "";
	var objForm = document.frmTestDrive;

	if ( objForm.f_td_salution.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_td_salution" );	
	}
	
	if ( objForm.f_td_email.value.length <= 0 || validateEmail(objForm.f_td_email.value) == false ) {
		errorFields = appendList( errorFields, "f_td_email" );	
	}
	
	if ( objForm.f_td_name.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_td_name" );
	}
	
	if ( objForm.f_td_nric.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_td_nric" );
	}
	
	if ( objForm.f_td_occupation.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_td_occupation" );
	}
	
	if ( objForm.f_td_current_make.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_td_current_make" );
	}
	
	if ( objForm.f_td_current_model.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_td_current_model" );
	}
	
	if ( objForm.f_td_duration_plan.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_td_duration_plan" );
	}
	
	if ( objForm.f_td_model_request.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_td_model_request" );
	}
	
	if ( objForm.f_td_state.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_td_state" );
	}
	
	if ( errorFields.length > 0 ) {
		errorFields = errorFields + "," + "main";
		DisplayError2( errorFields );
	} 
	else {
		/* --- Step 1 success, proceed to step 2 (page2) --- */
		toggleBlockControl( "tdPage2", 1 );
		toggleBlockControl( "tdPage1", 0 );
	}
}

function formValidateTDPage2( objForm, processPath ){
	ResetErrorTDPage2(); 
	
	var strFormParam = "";
	var errorFields = "";
	var objForm = document.frmTestDrive;

	if ( objForm.f_td_tesdrive_date_year.value.length <= 0 || objForm.f_td_tesdrive_date_month.value.length <= 0 || objForm.f_td_tesdrive_date_day.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_td_tesdrive_date" );	
	} else if ( checkDate( objForm.f_td_tesdrive_date_year.value, objForm.f_td_tesdrive_date_month.value, objForm.f_td_tesdrive_date_day.value ) == false ) {
		errorFields = appendList( errorFields, "f_td_tesdrive_date" );	
	}

	if ( objForm.f_td_contact_number.value.length <= 0 && objForm.f_td_contact_personnel.value.length <= 0 && objForm.f_td_contact_personnel_number.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_td_contact_number" );
		errorFields = appendList( errorFields, "f_td_contact_personnel" );
		errorFields = appendList( errorFields, "f_td_contact_personnel_number" );
	} 
	else if( objForm.f_td_contact_number.value.length <= 0 
			&& objForm.f_td_contact_personnel.value.length > 0 
			&& objForm.f_td_contact_personnel_number.value.length <= 0  ) {  
		errorFields = appendList( errorFields, "f_td_contact_personnel_number" );
	} 
	else if( objForm.f_td_contact_number.value.length <= 0 
			&& objForm.f_td_contact_personnel.value.length <= 0 
			&& objForm.f_td_contact_personnel_number.value.length > 0  ) {  
		errorFields = appendList( errorFields, "f_td_contact_personnel" );
	}
	
	//if ( objForm.f_td_preferred_time.value.length <= 0 ) {
		//errorFields = appendList( errorFields, "f_td_preferred_time" );
	//}
	
	//objForm.f_td_preferred_time.value = ( objForm.f_td_preferred_time_hour.value + ( objForm.f_td_preferred_time_minute.value + '' ) ).substring( 0, 4 );
	objForm.f_td_tesdrive_date.value = objForm.f_td_tesdrive_date_year.value + "/" + objForm.f_td_tesdrive_date_month.value + "/" + objForm.f_td_tesdrive_date_day.value;
	
	if ( errorFields.length > 0 ) {
		errorFields = errorFields + "," + "main2";
		DisplayError2( errorFields );
	} 
	else {
		/* --- Step 2 success, submit form --- */
		strFormParam = GetFormElemString( objForm );	
		//alert(strFormParam);
		postItYo( processPath, strFormParam ); 
		closeForm('overlayForm');
		displayForm2('formContentTQ', '/_includes/thankyou_testdrive.html');
	}
}


function formValidateBR( objForm, processPath ){
	ResetErrorBR(); 
	
	var strFormParam = "";
	var errorFields = "";
	var objForm = document.frmBrochureRequest;
	
	if ( objForm.f_br_salution.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_br_salution" );	
	}
	
	if ( objForm.f_br_email.value.length <= 0 || validateEmail(objForm.f_br_email.value) == false ) {
		errorFields = appendList( errorFields, "f_br_email" );	
	}
	
	if ( objForm.f_br_occu.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_br_occu" );
	}
	
	if ( objForm.f_br_name.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_br_name" );
	}
	
	if ( objForm.f_br_model.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_br_model" );
	}
	
	if ( objForm.f_br_address.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_br_address" );
	}
	
	if ( objForm.f_br_postcode.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_br_postcode" );
	}
	
	if ( objForm.f_br_state.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_br_state" );
	}
	
	if ( objForm.f_br_contact_num.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_br_contact_num" );
	}
			
	if ( errorFields.length > 0 ) {
		errorFields = errorFields + "," + "main";
		DisplayError2( errorFields );
	} 
	else {
		/* --- Step 2 success, submit form --- */
		strFormParam = GetFormElemString( objForm );	
		//alert(strFormParam);
		postItYo( processPath, strFormParam ); 
		closeForm('overlayForm');
		displayForm2('formContentTQ', '/_includes/thankyou_brochure.html');
	}
}

function formValidateGU( objForm, processPath ){
	ResetErrorGU(); 
	
	var strFormParam = "";
	var errorFields = "";
	var objForm = document.frmGetUpdates;
	

	if ( objForm.f_gu_email.value.length <= 0 || validateEmail(objForm.f_gu_email.value) == false ) {
		errorFields = appendList( errorFields, "f_gu_email" );	
	}
	
	if ( errorFields.length > 0 ) {
		errorFields = errorFields + "," + "main";
		DisplayError2( errorFields );
	} 
	else {
		/* --- Step 2 success, submit form --- */
		strFormParam = GetFormElemString( objForm );	
		//alert(strFormParam);
		postItYo( processPath, strFormParam ); 
		closeForm('overlayForm');
		displayForm2('formContentGU', '/_includes/thankyou_general.html');
	}
}


function formValidateCU( objForm, processPath ){
	ResetErrorCU(); 
	
	var strFormParam = "";
	var errorFields = "";
	var objForm = document.frmContactUs;
	
	if ( objForm.f_name.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_name" );
	}
	
	if ( objForm.f_email.value.length > 0 && validateEmail(objForm.f_email.value) == false ) {
		errorFields = appendList( errorFields, "f_email" );	
	}
	
	if ( objForm.f_purpose.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_purpose" );
	}
	
	if ( objForm.f_help.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_help" );
	}
	
	if ( objForm.f_phone.value.length <= 0 ) {
		errorFields = appendList( errorFields, "f_phone" );
	}
	
	if ( objForm.f_state.value.length <= 0 ) {
	errorFields = appendList( errorFields, "f_state" );
	}
	
	if ( errorFields.length > 0 ) {
		errorFields = errorFields + "," + "main";
		DisplayError2( errorFields );
	} 
	else {
		/* --- Step 2 success, submit form --- */
		strFormParam = GetFormElemString( objForm );	
		//alert(strFormParam);
		postItYo( processPath, strFormParam ); 
		closeForm('overlayForm');
		displayForm2('formContentGU', '/_includes/thankyou_contactus.html');
	}
}

function formValidateBR2(objForm, processPath) {
    ResetErrorBR2();

    var strFormParam = "";
    var errorFields = "";
    var objForm = document.frmBrochureRequest2;

    if (objForm.f_br_salution.value.length <= 0) {
        errorFields = appendList(errorFields, "f_br_salution");
    }

    if (objForm.f_br_name.value.length <= 0) {
        errorFields = appendList(errorFields, "f_br_name");
    }

    if (objForm.f_br_email.value.length <= 0 || validateEmail(objForm.f_br_email.value) == false) {
        errorFields = appendList(errorFields, "f_br_email");
    }
    
    if (objForm.f_br_contact_num.value.length <= 0) {
        errorFields = appendList(errorFields, "f_br_contact_num");
    }

    if (errorFields.length > 0) {
        errorFields = errorFields + "," + "main";
        DisplayError2(errorFields);
    }
    else {
        /* --- Step 2 success, submit form --- */
        strFormParam = GetFormElemString(objForm);

        //alert(strFormParam);
        //alert(processPath);
        postItYo(processPath, strFormParam);
        closeForm('overlayForm');
        displayForm2('formContentTQ', '/_includes/thankyou_brochure.html');
    }
}