﻿/* Last edits: 28 Oct 2009
By: Chris Coray
Note: Added "prywatnie" to Home user filter */

document.write('<SCR' + 'IPT TYPE="text/javascript" LANGUAGE="JavaScript" SRC="/common/inc/jquery/plugins/jquery.prettyPhoto.js"><\/SCR' + 'IPT>');
document.write('<link rel="stylesheet" href="/common/inc/css/jquery.prettyPhoto.css" type="text/css" media="screen"/>');

var langtag = (typeof n_lang != 'undefined' ? n_lang.toUpperCase() : 'EN-US');
var isStage = (location.hostname.indexOf("stage") > 0 || location.hostname.indexOf("test") > 0) ? true : false;

function getFormPagePath() {
	var pagePath = location.pathname;
	if(pagePath.indexOf("sales_call_request_popup.html") > 0) {
		var referringPage = getQueryParm("profile_url");
		if(referringPage) {
			pagePath = referringPage.substr(referringPage.indexOf(".com")+4);
		}
	}

	if(typeof n_root != "undefined") {
		switch(n_root) {
			case "de-de" :
			case "es-es" :
			case "fr-fr" :
			case "it-it" :
			case "nl-nl" :
			case "cs-cz" :
			case "ja-jp" :
			case "zh-cn" :
			case "zh-tw" :
			case "hu-hu" :
			case "pl-pl" :
			case "pt-br" :
			case "ru-ru" :
			case "sv-se" :
			case "da-dk" :
			case "fi-fi" :
			case "no-no" :
				pagePath = pagePath.replace("/"+n_root, "");
				break;
		}
	}
	return pagePath;
}

function setMetrics() {
	cmCompletion(getFormPagePath(),'Request a Call');
	setOmnitureVars();
}

var set = false;
function setInit() {
	if(!set) {
		cmInitiation(getFormPagePath(),'Request a Call');
		set = true;
	}
	return;
}

function setOmnitureVars() {
	//s_linkTrackVars="";
	//s_linkTrackEvents="";
	s_linkType="o";
	s_channel = "Request a Call Form:"+langtag;
	s_prop13 = "Request a Call Form:"+langtag;
	s_linkName="Request a Call Form:"+langtag;
	s_pageName="";
	if (!isStage) {
		s_lnk=s_co(this);
		s_gs("novellcom");
	}
	return;
}

// Get Translated string if available
function gt(varname,defaultstring) {
	return ((eval("typeof "+varname) != 'undefined') ? eval(varname) : defaultstring)
}

// Convert characters above ascii 127 into html numeric character references (in decimal)
// See http://www.pinyin.info/tools/converter/chars2uninumbers.html for a useful implementation of this
function convertToEntities(input) {
	var output = "";
	for(var i=0; i<input.length; i++) {
		if (input.charCodeAt(i) <= 127) {
			output += input.charAt(i);
		}
		else {
			output += "&#" + input.charCodeAt(i) + ";";
		}
	}
	return output;
}

function convertFormTextToEntities() {
	for (var i = 0; i < allFormTextFields.length; i++) {
		theField = eval("document.getElementById('salescallrequest')." + allFormTextFields[i][0]);
		theField.value = convertToEntities(theField.value);
	}
}

// Trim whitespace from left and right sides of s.
function trim(s) {
	return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}

// Phone prefill based on country
var phonechanged = false;
var prefill_default = '+00 000 0000000';
var prefill_us_canada = '000-000-0000';
function getPhonePrefill(country) {
	var prefillvalue = prefill_default;
	if (country && country != null && (country == 'United States' || country == 'Canada')) { prefillvalue = prefill_us_canada; }
	return prefillvalue;
}
function setPhonePrefill(country) {
	if (!phonechanged) document.getElementById('question_6177').value = getPhonePrefill(country);
}
function isPhonePrefill(phonenumber) {
	return (phonenumber == prefill_default || phonenumber == prefill_us_canada);
}
function setPhoneChanged() {
	phonechanged = true;
}
function oc(a){ //object conversion function used to determine if a string is in an array.
  var o = {};
  for(var i=0;i<a.length;i++){
    o[a[i]]='';
  }
  return o;
}

// Validation:
var formTextFields = new Array();
formTextFields[0] = new Array("question_6173",gt("firstname_translated","First Name"));
formTextFields[1] = new Array("question_6174",gt("lastname_translated","Last Name"));
formTextFields[2] = new Array("question_6175",gt("company_translated","Company"));
formTextFields[3] = new Array("question_6178",gt("country_translated","Country"));
formTextFields[4] = new Array("question_6181",gt("city_translated","City"));
formTextFields[5] = new Array("question_6177",gt("phone_translated","Phone Number"));
formTextFields[6] = new Array("question_6176",gt("email_translated","E-mail Address"));

var allFormTextFields = new Array();
allFormTextFields[0] = new Array("question_6173",gt("firstname_translated","First Name"));
allFormTextFields[1] = new Array("question_6174",gt("lastname_translated","Last Name"));
allFormTextFields[2] = new Array("question_6175",gt("company_translated","Company"));
allFormTextFields[3] = new Array("question_6178",gt("country_translated","Country"));
allFormTextFields[4] = new Array("question_6181",gt("city_translated","City"));
allFormTextFields[5] = new Array("question_6177",gt("phone_translated","Phone Number"));
allFormTextFields[6] = new Array("question_6176",gt("email_translated","E-mail Address"));

var formRegexFields = new Array();
formRegexFields[0] = new Array("question_6176","^.+@.+$",gt("emailerror_translated","Please enter an e-mail address with a valid format (i.e. \"username@domainname\")"));
formRegexFields[1] = new Array("question_6177","^.*\\d.*$",gt("phoneerror_translated","Please enter a phone number which contains one or more digits"));

var maxFieldLength = 2000;
var line = "___________________________________________________"
var homeCheck = 1;

function formCheck() {
	var formOK = true;
	var errorMessage = "";
	var lengthExceeded = false;
	var blank = false;
	var frm = document.getElementById('salescallrequest');
	var compVal = frm.question_6175.value;
	
	/* var racDataContent = frm.question_6173.value + ' || ' + frm.question_6174.value + ' || ' + frm.question_6175.value + ' || ' + frm.question_6176.value + ' || ' + frm.question_6178.value + ' || ' + frm.question_6181.value + ' || ' + frm.question_6177.value + ' || ' + frm.question_6184.value;
	createCookie('racData',racDataContent); */

	// Max Length:
	for (i = 0; i < allFormTextFields.length; i++) {
		theField = eval("document.getElementById('salescallrequest')." + allFormTextFields[i][0]);
		//alert("field name: "+allFormTextFields[i][0]+"  theField.value.length: "+theField.value.length+"  maxFieldLength: "+maxFieldLength);
		if(theField.value.length > maxFieldLength) {
			formOK = false;
			if(!lengthExceeded) {
				errorMessage += "\n"+gt("maxlengtherror_translated","The values entered in the following fields exceed the maximum length")+": " + maxFieldLength + " "+gt("characters_translated","characters")+":\n";
				lengthExceeded = true;
			}
			errorMessage += "\t" + allFormTextFields[i][1] + " (" + theField.value.length + " " + gt("characters_translated","characters") + ")\n";
		}
	}
	// Required (text)
	for (i = 0; i < formTextFields.length; i++) {
		theField = eval("document.getElementById('salescallrequest')." + formTextFields[i][0]);
		if(trim(theField.value).length == 0 || (theField.name == 'question_6177' && isPhonePrefill(trim(theField.value)))) {
			formOK = false;
			if(!blank) {
				errorMessage += "\n"+gt("blank_translated","The following required fields were left blank")+":\n ";
				blank = true;
			}
			errorMessage += "\t" + formTextFields[i][1] + "\n";
		}
	}
	// Regex
	for(i = 0; i < formRegexFields.length; i++) {
		theFieldValue = (eval("document.getElementById('salescallrequest')." + formRegexFields[i][0])).value;
		var regex = new RegExp(formRegexFields[i][1]);
		if (theFieldValue != "" && !regex.test(theFieldValue)) {
			formOK = false;
			errorMessage += "\n" + formRegexFields[i][2] + "\n";
		}
	}

	if (!formOK) {
		alert(line + "\n\n"+gt("error_translated","Your form was not submitted because of the following problems")+"\n" + line + "\n" + errorMessage);
		return false;
	}
	
	//test for time taken to fill out
	if(timeOut == false){
		alert("Your form was not submitted because it was filled out too quickly. In order to protect against bots spamming our form, we have set a timer. Please wait a moment and try submitting this form again.");
		return false;
	}
	if(magicField != '') {
		alert("Your browser has triggered a security code. Please upgrade your browser and submit again.");
		return false;
	}
	
	if(compVal.toLowerCase() in oc(["personal", "private", "privat", "pr", "individual", "none", "=", "-", "--", "home", "no", "no company", ".", "abc", "x", "xxx", "xy", "yx", "xyz", "priv", "familie", "------------", "for personal use", "residencial", "at my own", "one man band",
		"ania", "wirek", "dom", "osoba prywatna", "pracownik", "prywatnie", "zadna", "brak", "^^", "maison", "utilisateur domestique", "utilisation à la maison", "personnel", "individuel", "aucune compagnie", "aucun", "aucune", "privé",
		"haus", "hausgebrauch", "persönlich", "persönlicher gebrauch", "einzeln", "keine firma", "kein", "keine", "nein",
		"nessun'azienda", "nessuno", "nessuna", "casa", "utente domestico", "uso domestico", "personale", "privato", "famiglia",
		"nenhum", "repouso", "usuário home", "uso home", "pessoal", "nenhuma companhia", "confidencial", "família", "ama de casa", "privado",
		"Никакие", "Дом", "Домашний потребитель", "Домашняя польза", "Лично", "индивидуально", "Отсутствие компании", "приватно", "семья",
		"无", "家", "家庭用户", "家庭用途", "个人", "单独", "没有公司", "私有", "家庭", "どれも", "家", "ホームユーザー", "家の使用", "個人的", "個々", "会社無し", "私用", "家族"]) && homeCheck == 1) {
		//open overlay
		homeCheck = 2;
		var homeUrl = '/'+n_lang+'/common/inc/requestcall_smallform_home.html?iframe=true&width=510&height=300';
		$("#homeUserBox a").attr("href", homeUrl); 
		$("#homeUserBox a").prettyPhoto();
		$("#homeUserBox a").click();
		return false;
	}

	// set the subject
	var subject = "Novell.com Web Lead - Call Immediately (" + frm.question_6178.value + ")";
	frm.email_subject.value = subject;

	// set the pageencoding (charset)
	if(typeof n_enc != 'undefined') frm.charset.value = n_enc;

	// set the language
	var requestfrom = "Request a Call Form:"+langtag;
	frm.request_from.value = requestfrom;
	frm.question_6241.value = langtag;

	// set the refering url
	if(document.referrer && document.referrer.length > 0) frm.question_6243.value = document.referrer;

	// set the thankyou page
	if(typeof rc_thankyou_page != 'undefined') frm.thankyou_page.value = rc_thankyou_page;

	// Set the profile_url
	if(location.href.indexOf('/company/sales_call_request_popup.html') != -1) {
		// We are on the popup, so we got here through a link
		if (queryString('profile_url') != 'false') {
			//alert("profile_url was passed in: "+queryString('profile_url'));
			frm.profile_url.value = queryString('profile_url');
		}
		// don't do this for now.  Ryan prefers enforcing a profile_url parameter
		// for the sake of better accuracy in the numbers
		/*else if (document.referrer && document.referrer.length > 0) {
			//alert("getting profile_url from referrer: "+document.referrer);
			frm.profile_url.value = document.referrer;
		}*/
		else {
			// We don't know what page they came from, so it can't be tracked
			//alert("no referrer or profile_url.  Source page unknown.");
		}
	}
	else {
		// We are embedded in a page
		//alert("We are embedded in a page.\nSetting profile_url to location.href: "+location.href);
		frm.profile_url.value = location.href;
	}

	setMetrics();
	convertFormTextToEntities();

	//add email address to Google Analytics
	pageTracker._setVar(document.getElementById('question_6176').value);
	
}