
// form utility functions

function set_value(targetForm, targetField, valueTo) {
	
		if(!valueTo) return false;
		if( typeof eval('document.'+targetForm) == 'undefined' || typeof eval('document.'+targetForm+'.' + targetField) == 'undefined' ) return false;
		eval('document.'+targetForm+'.' + targetField + '.value = \'' + valueTo.replace(/'/g,"\\'")+'\'');
		return true;
}

function transcribe_form(formToTranscribe,transcribeTo) {
	var fieldName = '';
	var fieldValue = '';
    for (var i = 0; i<eval('document.'+formToTranscribe+'.elements.length'); i++) {
        fieldName = eval('document.'+formToTranscribe+'.elements['+i+'].name');
        fieldValue = eval('document.'+formToTranscribe+'.elements['+i+'].value');
        set_value(transcribeTo,fieldName,fieldValue);
    }	
	return true;
}


function load_page(pageToLoad) {
	set_value('masterForm', 'LoadPage', pageToLoad);
	document.masterForm.submit();
}

function reset_mmt_and_load_page(pageToLoad) {
	
	set_value('masterForm', 'Make', '-1');
	set_value('masterForm', 'Model', '-1');
	set_value('masterForm', 'Trim', '-1');
	set_value('masterForm', 'Year', '-1');
	set_value('masterForm', 'VehicleNMB', '-1');
	
	
	set_value('masterForm', 'LoadPage', pageToLoad);
	document.masterForm.submit();
}

function save_and_load(formToTranscribe, pageToLoad, lastPage) {
	transcribe_form(formToTranscribe,'masterForm');
	set_value('masterForm', 'LastPage', lastPage);
	load_page(pageToLoad);
}


function save_and_load_mds_page(formToTranscribe, pageToLoad, okPage, noCoveragePage, errorPage) {
	transcribe_form(formToTranscribe,'masterForm');
	
	set_value('masterForm', 'DealerLookup', '1');
	set_value('masterForm', 'MdsLookup', '1');
	
	
	set_value('masterForm', 'LoadPage', pageToLoad);
	
	set_value('masterForm', 'OkPage', okPage);
	set_value('masterForm', 'NoCoveragePage', noCoveragePage);
	set_value('masterForm', 'ErrorPage', errorPage);
	
	document.masterForm.submit();
}


function save_and_submit_lead(formToTranscribe, OkPage, NoCoveragePage, ErrorPage) {
	transcribe_form(formToTranscribe,'masterForm');
	set_value('masterForm', 'OkPage', OkPage);
	set_value('masterForm', 'LoadPage', OkPage);
	set_value('masterForm', 'NoCoveragePage', NoCoveragePage);
	set_value('masterForm', 'ErrorPage', ErrorPage);
	set_value('masterForm', 'SubmitLead', '1');
	
	document.masterForm.submit();
}

function consolidate_phone_numbers_to(AreaCode, PhonePrefix, PhoneSuffix, targetFormField) {
	Phone = AreaCode+''+PhonePrefix+''+PhoneSuffix;
	//Remove all non-numeric characters from the phone
	while (Phone.search(/[^0-9]/) != -1){
		Phone = Phone.replace(/[^0-9]/, "");
	}
	eval('document.'+targetFormField+'.value = ' + Phone); 
}


function accumulate_buyer_id_list (MultiValueField) {
	
	Accumulator = '';
	StepIn = 0;
	
	if( eval('document.'+MultiValueField+'.length') ) {
		for( i = 0; i < eval('document.'+MultiValueField+'.length'); i++ ) {
			if( eval('document.'+MultiValueField+'['+i+'].checked') ) {
				if (StepIn == 1) {
					Accumulator= Accumulator+','+eval('document.'+MultiValueField+'['+i+'].value');
				} else {
					Accumulator= eval('document.'+MultiValueField+'['+i+'].value');
					StepIn = 1;
				}
			}
		}
	}
	set_value('masterForm', 'RetailBuyerIdList', Accumulator);
		
}

function accumulate_selected_buyer_details (MultiValueField) {
	
	Accumulator = '';
	StepIn = 0;
	
	if( eval('document.'+MultiValueField+'.length') ) {
		for( i = 0; i < eval('document.'+MultiValueField+'.length'); i++ ) {
			if( eval('document.'+MultiValueField+'['+i+'].checked') ) {
				if (StepIn == 1) {
					eval('document.'+MultiValueField+'['+i+'].value.replace(/,/, " ")');
					Accumulator= Accumulator+','+eval('document.'+MultiValueField+'['+i+'].value');
				} else {
					Accumulator= eval('document.'+MultiValueField+'['+i+'].value');
					StepIn = 1;
				}
			}
		}
	}
	set_value('masterForm', 'RetailBuyerName', Accumulator);
		
}

// valadation javascript if it is valid return true if it is not valid return false

function valid_year(YearToValidate) {
	if ( YearToValidate == "-1") {
		return ( false );
	}
	return ( true );
}

function valid_make(MakeToValidate) {
	if ( MakeToValidate == "-1") {
		return ( false );
	}
	return ( true );
}

function valid_model(ModelToValidate) {
	if ( ModelToValidate == "-1") {
		return ( false );
	}
	return ( true );
}

function valid_trim(TrimToValidate) {
	if ( TrimToValidate == "-1") {
		return ( false );
	}
	return ( true );
}

function valid_zipcode(ZipcodeToValidate) {
	if ( ZipcodeToValidate == "-1" || ZipcodeToValidate == "") {
		return ( false );
	}
	return ( true );
}

function valid_fname(Name) {
	if ( Name.length <= 2 ) { 
		return ( false ); 
	}
	if ( (Name.search('a') == -1)
		&& (Name.search('e') == -1) 
		&& (Name.search('i') == -1) 
		&& (Name.search('o') == -1)
		&& (Name.search('u') == -1)
		&& (Name.search('y') == -1)
		&& (Name.search('A') == -1)
		&& (Name.search('E') == -1)
		&& (Name.search('I') == -1)
		&& (Name.search('O') == -1)
		&& (Name.search('U') == -1)
		&& (Name.search('Y') == -1) ) {
			return ( false );
		} 
	if (is_black_listed( Name ) ){
		return ( false );
	}
	return ( true );
}


function valid_lname(Name) {
	// left in incase lname valadation requires different logic. for now just use fname valadation logic
	return (valid_fname(Name));
}

function valid_address (Address) {
	// place holder incase we need special prefix validation
	if (Address == "") {
		return ( false );
	}
	return ( true );
}

function valid_city (City) {
	// place holder incase we need special prefix validation
	if (City == "") {
		return ( false );
	}
	return ( true );
}

function valid_state (State) {
	// place holder incase we need special prefix validation
	if (State == "") {
		return ( false );
	}
	return ( true );
}

function valid_area_code (AreaCode) {
	if( (AreaCode.length != 3) || 
			(AreaCode.search(/[^0-9]/) != -1) ||
			(AreaCode.substring(0,1) == "1") || 
			(AreaCode.substring(0,1) == "0") || 
			(AreaCode.substring(0,3) == "911") || 
			(AreaCode.substring(0,3) == "900") || 
			(AreaCode.substring(0,3) == "411") || 
			(AreaCode.substring(0,3) == "555") ) {
		return ( false );
	}
	return ( true );
}


function valid_phone_prefix (PhonePrefix) {
	// place holder incase we need special prefix validation
	return (valid_area_code(PhonePrefix) );
}

function valid_phone_suffix (PhoneSuffix) {
	if( (PhoneSuffix.length != 4 ) || (PhoneSuffix.search(/[^0-9]/) != -1) ) {
		return ( false );
	}
	return (true);
}


function valid_email (Email) {
	
	if (Email.length == 0){
		return ( false );
	}
	//Make sure the email contains both an @ symbol and a . symbol
	if ((Email.search("@") == -1) || (Email.search("\\.") == -1)){
		return ( false );
	}
	
	//More email validation... no dot ands.... or and dots...
	
	if ((Email.search("\\.@") != -1) || (Email.search("@\\.") != -1) ){
		return ( false );
	}
	
	//no 2 or more dots in a row

	if ((Email.search("\\.\\.") != -1)){
		return ( false );
	}
	
	// no spaces!
	
	if ((Email.search(" ") != -1)){
		return ( false );
	}	

	// no dot or @ at the front

	if ((Email.indexOf("@") == 0) || (Email.indexOf(".") == 0)){
		return ( false );
	}
	
	// and no dot or and at the back.
	
	if ((Email.lastIndexOf("@") == Email.length -1) || (Email.lastIndexOf(".") == Email.length -1)){
		return ( false );
	}	
	
	// dot after the and
	
	if (Email.lastIndexOf('@') > Email.lastIndexOf('.')){
		return ( false );
	}	
	
	// one @ to rule them all
	
	if (Email.lastIndexOf('@') != Email.indexOf('@')){
		
	}		

	// bad character sweep

	var regexpr = new RegExp('[\\(\\)\\<\\>\\,\\;\\:\\\\\\/\\"\[\\]]');
	if (Email.match(regexpr)) {
		return ( false );
	}
	
	return (true);
}








