/* *********************************************************** 
 *	FUNCTION:	externalLinks
 *	PURPOSE: 	make external links open in new windows
 * **********************************************************/
 
function externalLinks() {
	if (document.getElementsByTagName){
		var anchors = document.getElementsByTagName("a");
		for (var i=0; i<anchors.length; i++) {
			var anchor = anchors[i];
			if (anchor.getAttribute("href") &&
				anchor.getAttribute("rel") == "external")
			anchor.target = "_blank";
		}
	}
}

window.onload = externalLinks;

/* *********************************************************** 
 *	FUNCTION:	attachMouseHover, listOver, listOut
 *	PURPOSE: 	attached :hover to list items
 * **********************************************************/

attachHover = function() {
	if(document.getElementById('actionitems')){
		var elements = document.getElementById('actionitems').getElementsByTagName('li');
		for (var i=0; i<elements.length; i++) {
			elements[i].onmouseover=listOver;
			elements[i].onmouseout=listOut;
		}
	}
}

function listOver () {
	this.className+=" hover";
}

function listOut () {
	this.className="";
}


/* window.attachEvent for IE + Opera */
if (window.attachEvent){ 
	window.attachEvent('onload', attachHover);
}



/* *********************************************************** 
 *	FUNCTION:  valildateForm
 *	PURPOSE: validateForm input
 * ********************************************************* */
var bad_char_errors = new Array();
var errors = new Array();

function validateForm(form) {
	var f=form;
	var errdiv = document.getElementById("errmsg");
	
	var errlinksdiv = document.getElementById("errlinks");
	
	var form_elements = new Array();

	switch (form.name) {
		
		case "solutions_purchase":
		case "product_purchase":
			form_elements = [['realname','First and Last Name'],
					 		 ['Country','Country'],
					 		 ['email','Email address']];
			break;
			
		case "contact_support":
			form_elements = [['realname','First and Last Name'],
					 		 ['Country','Country'],
					 		 ['email','Email address'],
					 		 ['comment','Support issue']];
			break;

		case "checkout_form":
			form_elements = [['fl_name','First and Last Name'],
							 ['company','Company Name'],
					 		 ['email','Email address']];
					 		
			break;
			
		case "product_reg":
			form_elements = [['realname','First and Last Name'],
					 		 ['Country','Country'],
					 		 ['email','Email address'],
							 ['Company','Company'],
							 ['City','City'],
							 ['ZIPCode','ZIP Code']];
			break;
		
		case "pub_reg":
			form_elements = [['realname','First and Last Name'],
					 		 ['Company','Company'],
					 		 ['State','State'],
					 		 ['Country','Country'],
					 		 ['email','Email address'],
							 ['Phone','Phone']];
			break;

		case "demo_reg":
			form_elements = [['realname','First and Last Name'],
					 		 ['Company','Company Name'],
					 		 ['email','Email address'],
							 ['Phone','Phone number']];
			break;
			
		case "domino_reg":
			form_elements = [['realname','First and Last Name'],
							 ['Company','Company Name'],
							 ['City','City'],
							 ['ZIPcode','ZIP Code'],
							 ['Country','Country'],
							 ['email','Email address']];
			break;
			
		case "sync_reg":

			form_elements = [['realname','First and Last Name'],
							 ['Address','Address'],
							 ['City','City'],
							 ['ZIPcode','ZIP Code'],
							 ['Country','Country'],
							 ['email','Email address']];
			break;
			
		case "configuration":
			form_elements = [['Contact_Name','Name'],
					 		 ['Contact_email','Email'],
					 		 ['SyncML-Device','Device'],
							 ['SyncML-DeviceConf','Device Configuration']];
			break;			
			
	}
	
	for ( i = 0; i < form_elements.length; i++ ) {
		if ( document.getElementById(form_elements[i][0]) || document.getElementsByName(form_elements[i][0]) ) {
			
			if ( document.getElementById(form_elements[i][0]) )
				var e = eval('f.' + form_elements[i][0] + '.value');
			
			/*else if (form_elements[i][0] == "use") {
				for (j = 0; j< f.use.length;j++) {
					var e = f.use[j].checked;
				}					
			}
			
			else if (form_elements[i][0] == "interest") {
				for (j = 0; j< f.interest.length;j++) {
					var e = f.interest[j].checked;
				}					
			}*/
			
			/* else if ( document.getElementsByName(form_elements[i][0]) ) {
				//var e = validateCheckBoxes(form.name,form_elements[i][0]);
				
			} */
								
			if (!e) {
				errors.push('<span>· '+form_elements[i][1]+' is required</span>');
			} else {
				if (form_elements[i][0] == "email")  //verify email address
					chk_email(e);
			}
		}
	}
	
	if (f.name == "solutions_purchase") {
		if (!f.use01.checked && !f.use02.checked) errors.push ('<span>· Planned use is required</span>');
		if (!f.interest01.checked && !f.interest02.checked && !f.interest03.checked && !f.interest04.checked) errors.push ('<span>· Please select at least one interest</span>');
	}
	
	else if (f.name == "checkout_form") {
		if (document.checkout_form.total.value == 0) {
			errors.push ('<span>· Please select a product</span>');
		}
			
			
	}
	

	if (errors.length > 0 || bad_char_errors.length > 0) {
		errdiv.style.display = "block";
		errdiv.innerHTML = '<span>Please correct the following errors:</span>';
		
		if (errors[0]) {
			for( j = 0; j < errors.length; j++ ) {
				errdiv.innerHTML += errors[j]
			}
		}
		
		if (bad_char_errors[0]) {
			for( x = 0; x < bad_char_errors.length; x++ ) {
				errdiv.innerHTML += bad_char_errors[x]
			}
		}
		errors.length = 0;
		bad_char_errors.length = 0;
		
		errlinksdiv.style.display = "block";
		errlinksdiv.innerHTML = 'There was a problem submitting your information. <a href="#errmsg">Click here</a> to view the errors.';
		
		return false;
		
	} else if (errors.length ==0){
		errdiv.style.display = "none";
		
		return true;
		
	}

}


/* *********************************************************** 
 *	FUNCTION:  chk_email, chk_badchar
 *	PURPOSE: legacy functions for form validation
 * ********************************************************* */
function chk_email(obj) {
	var bad_email_chars = "`/ (){}[]|<>/,&+=*'%?!~#^:;";
 
 	// check for spl characters that are invalid
 	if (!chk_badchar(obj, bad_email_chars)) {
		bad_char_errors.push('<span>· Email address contains illegal characters</span>');
 		//return false;
 	}
	
	// Check for an @ sign
 	var at_sign = obj.indexOf("@");
 	if (at_sign < 0) {
		bad_char_errors.push('<span>· Email address is missing the \'@\' sign</span>');
 		//return false;
 	}
	
	// Check for '.' and domain name
	var suffix = obj.substring(obj.lastIndexOf('.')+1);
	if ( suffix.length < 2 || obj.indexOf('.') == -1) {
		
   		bad_char_errors.push('<span>· Email address is missing the domain name</span>');
   		//return false;
	}
	
	// Yet another check...
	if ( (obj.indexOf('@.') > 0) || (obj.indexOf('.@') > 0) ) {
		bad_char_errors.push('<span>· Email address is malformed</span>');
	}
		
	if (bad_char_errors.length > 0) return false;
	
    return true;
}


function chk_badchar(word, badchars) {
	var found = -1; // bad char not found
   
 	for (var i = 0; i < badchars.length; i++) {
  		found = word.indexOf(badchars.charAt(i));
  		if (found > -1) {
   			break;  // exit from for loop
  		}
 	}

 	if (found > -1)	return false;
 	else return true;
}


/* *********************************************************** 
 *	FUNCTION:  	valildateCheckBoxes
 *	PURPOSE: 	see if checkbox set checked (not working)
 * ********************************************************* */
function validateCheckBoxes(formname,box){
	var elem = 'document.' + formname + '.' + box;
		
	var is_checked = false;
	for (i = 0; i < elem.length; i++ ) {
		if (elem[i].checked) is_checked = true;
	}
	return is_checked;
}

/* *********************************************************** 
 *	FUNCTION:  	getTotal
 *	PURPOSE: 	total out support purchase
 * ********************************************************* */
function getTotal() {
	var total = 0;
        if (document.checkout_form.InstallationPhone.checked) {
		total = 299;
		document.checkout_form.cart_order_id.value = "Funambol Installation: Phone and Email Support";
	}
        if (document.checkout_form.InstallationLogin.checked) {
		total = 499;
		document.checkout_form.cart_order_id.value = "Funambol Installation: Login Support";
	}
        if (document.checkout_form.IncidentIndividual.checked) {
		total = 300;
		document.checkout_form.cart_order_id.value = "Funambol Incident: Individual Incident Email Support";
	}
        if (document.checkout_form.Incident5PackEmail.checked) {
		total = 1000;
		document.checkout_form.cart_order_id.value = "Funambol Incident: 5-Pack Incidents Email Support";
	}
        if (document.checkout_form.Incident5PackPhoneEmail.checked) {
		total = 1500;
		document.checkout_form.cart_order_id.value = "Funambol Incident: 5-Pack Incidents Phone and Email Support";
	}
        if (document.checkout_form.SubscriptionSilver.checked) {
		total = 8000;
		document.checkout_form.cart_order_id.value = "Funambol Subscription: Silver Support";
	}
        if (document.checkout_form.SubscriptionGold.checked) {
		total = 15000;
		document.checkout_form.cart_order_id.value = "Funambol Subscription: Gold Support";
	}
        if (document.checkout_form.SubscriptionPlatinum.checked) {
		total = 100000;
		document.checkout_form.cart_order_id.value = "Funambol Subscription: Platinum Support";
	}
	
	document.getElementById('total').innerHTML = total;
	document.checkout_form.total.value = total;
	
	 
}


/* *********************************************************** 
 *	FUNCTION:  	getSubscriptionTotal
 *	PURPOSE: 	total out subscription purchase
 * ********************************************************* */
function getSubscriptionTotal() {
	var total = 0;
        if (document.checkout_form.Subscription5.checked) {
		total = 930;
		document.checkout_form.cart_order_id.value = "Funambol Annual Subscription: 5 users";
	}
        if (document.checkout_form.Subscription25.checked) {
		total = 1035;
		document.checkout_form.cart_order_id.value = "Funambol Annual Subscription: 25 users";
	}
        if (document.checkout_form.Subscription100.checked) {
		total = 1380;
		document.checkout_form.cart_order_id.value = "Funambol Annual Subscription: 100 users";
	}
        if (document.checkout_form.Subscription500.checked) {
		total = 3000;
		document.checkout_form.cart_order_id.value = "Funambol Annual Subscription: 500 users";
	}
        if (document.checkout_form.Subscription1000.checked) {
		total = 4500;
		document.checkout_form.cart_order_id.value = "Funambol Annual Subscription: 1000 users";
	}
	
	document.getElementById('total').innerHTML = total;
	document.checkout_form.total.value = total;
	
	 
}