//querystring processing
function QueryString(key){
	var value = null;
	for (var i=0;i<QueryString.keys.length;i++){
		if (QueryString.keys[i]==key){
			value = QueryString.values[i];
			break;
		}
	}
	return value;
}
QueryString.keys = new Array();
QueryString.values = new Array();

function QueryString_Parse(){
	var query = window.location.search.substring(1);
	var pairs = query.split("&");
	for (var i=0;i<pairs.length;i++){
		var pos = pairs[i].indexOf('=');
		if (pos >= 0){
			var argname = pairs[i].substring(0,pos);
			var value = pairs[i].substring(pos+1);
			QueryString.keys[QueryString.keys.length] = argname;
			QueryString.values[QueryString.values.length] = value;		
		}
	}
}
QueryString_Parse();

var users = new Array( 'arc', 'pro', 'dis', 'diy' );
var langs = new Array( 'en', 'es' );

//language & user settings
var currLang = ( QueryString("lang") != null && langIsValid() ) ? QueryString("lang") : "en";
var currUser = ( QueryString("user") != null && userIsValid() ) ? QueryString("user") : "arc";

function userIsValid( user ){
	for( var i=0; i<users.length; i++ ){
		if( QueryString("user") == users[i] ) return true;
	}
	return false;
}

function langIsValid( lang ){
	for( var i=0; i<langs.length; i++ ){
		if( QueryString("lang") == langs[i] ) return true;
	}
	return false;
}

//set user & lang cookies
function setUserAndLang( newUser, newLang ){
	for( var i=0; i<users.length; i++ ){	//kill 'em all
		eval( "eraseCookie( 'cbp_user_" + users[i] + "_cbp_lang_en' )" );
		eval( "eraseCookie( 'cbp_user_" + users[i] + "_cbp_lang_es' )" );
	}
	createCookie( "cbp_user_" + newUser + "_cbp_lang_" + newLang, "", 30 );
}

//cookie fcns
function createCookie(name,value,days){
	if (days){
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	var val = name+"="+value+expires+"; path=/";
	document.cookie = val;
}

function readCookie(name){
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++){
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name){
	createCookie(name,"",-1);
}



//misc fcns
function printPage(){
	window.print();
}
function markLang( lang ){
	flip[ "utilNav_" + lang ].killFlip('/images/lang_' + lang + '_over.gif')
}
var qsLangUser = "&user=" + currUser + "&lang=" + currLang;

//contact us form
function submitContactFrm(){
	if( contactFormIsValid() ){
		document.forms.contact.submit();
		return true;
	}
	else return false;
}

function resetContactFrm(){
	document.forms.contact.reset();
	
	location.href="#top";
	document.forms.contact.firstname.focus();
	return true;
}

function contactFormIsValid(){
	var frm = document.forms.contact;
	var emailRE = /^\w+((-\w+)|(\.\w+))*\@[a-z0-9]+((\.|-)[a-z0-9]+)*\.[a-z0-9]{2,4}$/gi;
	var ERR_FIRSTNAME = "Please enter a value for First Name.";
	var ERR_EMAIL = "Please enter a valid value for Email.";
	
	if( currLang == "es" ){
		ERR_FIRSTNAME = "Ingrese un valor para el Nombre de pila.";
		ERR_EMAIL = "Ingrese un valor válido para el correo electrónico.";
	}
	if( frm.firstname.value == "" ){
		alert( ERR_FIRSTNAME );
		frm.firstname.focus();
		return false;
	}
	if( !emailRE.test(frm.email.value) ){
		alert( ERR_EMAIL );
		frm.email.focus();
		return false;
	}
	return true;
}

//systems guide order form
function submitSystemsGuideFrm(){
	if( systemsGuideFrmIsValid() ){
		document.forms.systemsGuideOrder.submit();
		return true;
	}
	else return false;
}

function resetSystemsGuideFrm(){
	document.forms.systemsGuideOrder.reset();
	
	location.href="#top";
	document.forms.systemsGuideOrder.firstname.focus();
	return true;
}

function systemsGuideFrmIsValid(){
	var frm = document.forms.systemsGuideOrder;
	var emailRE = /^\w+((-\w+)|(\.\w+))*\@[a-z0-9]+((\.|-)[a-z0-9]+)*\.[a-z0-9]{2,4}$/gi;
	var ERR_REQUIRED = "Please fill out all required fields before proceeding.";
	var ERR_EMAIL = "Please enter a valid value for Email.";
	var ERR_SELECT_GUIDE = "Please choose the guide and format.";
	
	if( currLang == "es" ){
		ERR_REQUIRED = "Por favor, llene los campos requiridos."
		ERR_EMAIL = "Ingrese un valor válido para el correo electrónico.";
		ERR_SELECT_GUIDE = "Por favor seleccione uno.";
	}
	if (frm.format.value == ""){
		alert( ERR_SELECT_GUIDE );
		frm.format.focus();
		return false;
	}
	if( frm.firstname.value == "" ){
		alert( ERR_REQUIRED );
		frm.firstname.focus();
		return false;
	}
	if( frm.lastname.value == "" ){
		alert( ERR_REQUIRED );
		frm.lastname.focus();
		return false;
	}
	if( !emailRE.test(frm.email.value) ){
		alert( ERR_EMAIL );
		frm.email.focus();
		return false;
	}
	if( frm.phone.value == "" ){
		alert( ERR_REQUIRED );
		frm.phone.focus();
		return false;
	}
	if( frm.address1.value == "" ){
		alert( ERR_REQUIRED );
		frm.address1.focus();
		return false;
	}
	if( frm.city.value == "" ){
		alert( ERR_REQUIRED );
		frm.city.focus();
		return false;
	}
	if( frm.state.value == "" && frm.country.value == "Usa"){
		alert( ERR_REQUIRED );
		frm.state.focus();
		return false;
	}
	if( frm.postalcode.value == "" ){
		alert( ERR_REQUIRED );
		frm.postalcode.focus();
		return false;
	}
	if(frm.country.value == ""){
		alert( ERR_REQUIRED );
		frm.country.focus();
		return false;
	}
	return true;
}

//online survey form
function submitSurveyFrm(){
	var frm = document.forms.survey;
	var ERR_TXT = ( currLang == "es" ) ? "Ingrese un valor para\n" : "Please enter a value for\n";
	var ERR_CHK = ( currLang == "es" ) ? "Escoja al menos una opción para\n" : "Please choose at least one option for\n";
	var fieldsAreValid = true;
	for( var i=0; i<FieldToValidate.all.length; i++ ){
		field = FieldToValidate.all[i];
		if( field.type == "question_text" && frm[field.name].value == "" ){
			if( currLang == "es" ) alert( ERR_TXT + field.title_es );
			else alert( ERR_TXT + field.title );
			frm[field.name].focus();
			fieldsAreValid = false;
			return false;
		}
		if( field.type == "question_multi" ){
			if( !atLeastOneChecked( field.name ) ){
				if( currLang == "es" ) alert( ERR_CHK + field.title_es );
				else alert( ERR_CHK + field.title );
				fieldsAreValid = false;
			}
		}
	}
	if( fieldsAreValid ) document.forms.survey.submit();
}

function atLeastOneChecked( s ){
	var el = eval( "document.forms.survey." + s );

	for(var i=0; i<el.length; i++){
		if( el[i].checked ) return true;
	}
	
	return false;
}

function resetSurveyFrm(){
	document.forms.survey.reset();
	location.href="#top";
}

function FieldToValidate( type, name, title, title_es  ){
	this.type = type;
	this.name = name;
	this.title = title;
	this.title_es = title_es;
	FieldToValidate[ this.name ] = this;
	FieldToValidate.all[ FieldToValidate.all.length ] = this;
}
FieldToValidate.all = new Array();
