// the basics
try {
document.execCommand('BackgroundImageCache', false, true);
}
catch(e) {}



/*********************************/
/*********************************/


$(function(){
  $('a.new-window').click(function(){
    window.open(this.href);
    return false;
  });
});

function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}


/*********************************/
/*********************************/



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 expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

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 emailvalid(email) {
		if (/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i.test(email))
		return true;
}

function sendLinkEmails(){
	var mess = "";
	var oops = "";

	if ($('input#friendOneEmail').val() == ''){
		mess+="Please enter your Friend's Email\r ";
		oops=1;
	} else if (emailvalid($('input#friendOneEmail').val()) != true){
		mess+="Please correct your Friend's Email\r ";
		oops=1;
	}
	if ($('input#friendOne').val() == ''){
		mess+="Please enter your Friend's Name\r ";
		oops=1;
	}
	if ($('input#yourEmail').val() == ''){
		mess+="Please enter your Email\r ";
		oops=1;
	} else if (emailvalid($('input#yourEmail').val()) != true){
			mess+="Please correct your Email\r ";
			oops=1;
	}
	if ($('input#yourName').val() == ''){
		mess+="Please enter your Name\r ";
		oops=1;
	}

	if ($('input#friendTwoEmail').val() !='' || $('input#friendTwo').val()!=''){
		if ($('input#friendTwoEmail').val() == ''){
			mess+="Please enter your second Friend's Email\r ";
			oops=1;
		} else if (emailvalid($('input#friendTwoEmail').val()) != true){
			mess+="Please correct your second Friend's Email\r ";
			oops=1;
		}
		if ($('input#friendTwo').val() == ''){
			mess+="Please enter your second Friend's Name\r ";
			oops=1;
		}
	}

	if (oops == 1){
		alert ("Problems with form:\r "+mess);
		exit;
	} else {
		sendLinkEmail($('#yourName').val(), $('#yourEmail').val(), $('#friendOne').val(), $('#friendOneEmail').val() );
		sendLinkEmail($('#yourName').val(), $('#yourEmail').val(), $('#friendTwo').val(), $('#friendTwoEmail').val() );	
		alert('Thank you for Sharing Your Kids-EEZE!');
		window.location = "/thanks/index.php";
	}
}
function sendLinkEmail(fromFirst, fromLast, sendName, sendEmail) { 
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null){
		alert ("Browser does not support HTTP Request")
		return
	}
	var url="../lib/sendlinkemail.php"
	url=url+"?fromFirst="+urlencode(fromFirst);
	url=url+"&fromLast="+urlencode(fromLast);
	url=url+"&sendName="+urlencode(sendName);
	url=url+"&sendEmail="+urlencode(sendEmail);
	url=url+"&r=<?php echo $_GET['r']; ?>";
	url=url+"&t=<?php echo $_GET['t']; ?>";
	xmlHttp.onreadystatechange=stateChanged; 
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}



/*********************************/
/*********************************/



function sendCouponEmails(){
	var nameCookie = getCookie("couponSenderName");
	if (nameCookie != '')
	{
		var nameArray = nameCookie.split("|");
		if ($('input#friendOneEmail').val() != '')
			sendCouponEmail(nameArray[0], nameArray[1], $('#friendOne').val(), $('#friendOneEmail').val() );
		if ($('input#friendTwoEmail').val() != '')
			sendCouponEmail(nameArray[0], nameArray[1], $('#friendTwo').val(), $('#friendTwoEmail').val() );	
	}
}

function sendCouponEmail(fromFirst, fromLast, sendName, sendEmail)
{ 
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }
var url="../lib/email.php"
url=url+"?fromFirst="+urlencode(fromFirst);
url=url+"&fromLast="+urlencode(fromLast);
url=url+"&sendName="+urlencode(sendName);
url=url+"&sendEmail="+urlencode(sendEmail);
xmlHttp.onreadystatechange=stateChanged; 
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}


/*********************************/
/*********************************/



function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return "";
}

function urlencode(s) {
 s = encodeURIComponent(s);
 return s.replace(/~/g,'%7E').replace(/%20/g,'+');
}
function stateChanged() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
	$('#friendOne').val(""); $('#friendOneSurname').val(""); $('#friendOneEmail').val("");
	$('#friendTwo').val(""); $('#friendTwoSurname').val(""); $('#friendTwoEmail').val(""); 
 } 
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}



/*********************************/
/*********************************/



function doSpecialSubmit() {
	var valid = true;
	for (x=0;x<document.inputform.elements.length;x++) {
		if ((document.inputform.elements[x].name != "phone_ext") && (document.inputform.elements[x].name != "addr2")) {
			if (document.inputform.elements[x].value == "") {
				valid = false;
				}
			if (document.inputform.elements[x].type == "radio" && document.inputform.elements[x].checked && document.inputform.elements[x].value == "notagreed") {
				valid = false;
				}
			}
		}
	if (!valid) {
			alert('Please fill out all required fields and agree to the use statement!');
		} else {
			document.inputform.submit();
		}
	}


var validationErrorMessage = new Object();
validationErrorMessage['required'] = 'This field is required';
validationErrorMessage['numeric'] = 'This field requires a number';
validationErrorMessage['postalcode'] = 'Zip required';
validationErrorMessage['pattern'] = 'Pattern incorrect';
validationErrorMessage['email'] = 'Incorrect email address';

var validationFunctions = new Object();
validationFunctions["required"] = isRequired;
validationFunctions["pattern"] = isPattern;
validationFunctions["postalcode"] = isPostCode;
validationFunctions["numeric"] = isnumeric;
validationFunctions["email"] = isEmail;

function isRequired(formField) {
	switch (formField.type) {
		case 'text':
		case 'textarea':
		case 'select-one':
			if (formField.value)
				return true;
			return false;
		case 'radio':
			var radios = formField.form[formField.name];
			for (var i=0;i<radios.length;i++) {
				if (radios[i].checked) return true;
			}
			return false;
		case 'checkbox':
			return formField.checked;
	}	
}

function isPattern(formField,pattern) {
	var pattern = pattern || formField.getAttribute('pattern');
	var regExp = new RegExp(pattern,"");
	var correct = regExp.test(formField.value);
	if (!correct && formField.getAttribute('patternDesc'))
		correct = formField.getAttribute('patternDesc');
	return correct;
}

function isPostCode(formField) {
	return isPattern(formField,"^((\\d{5})|(\\d{5}[- ]?\\d{4}))$"); // get +4 working
	// us zip and zip+4 /(^\d{5}$)|(^\d{5}-\d{4}$)/ or /^[\d]{5}(-[\d]{4})?$/  ^[0-9]{5}(-[0-9]{4})?$
	// orig dutch \\d{5}\\s*\\D{2}
}

function isnumeric(formField) {
	return isPattern(formField,"\\d+");
}

function isEmail(formField) {
        // was: return isPattern(formField,"^\\w*@\\w*\.\\w{2,4}$")
        // added for gmail, etc:
        // NEED TO ADD TWO SLASHED TO ESCAPE!
        return isPattern(formField,"^([a-zA-Z0-9\\.\\+\\-\\_])+@([a-zA-Z0-9\\.\\-\\+])+\\.([a-zA-Z0-9]{2,4})+$");
}

function emptyFunction() {
	return true;
}

/*********************************/

var W3CDOM = document.createElement && document.getElementsByTagName;

function validateForms() {
	if (!W3CDOM) return;
	var forms = document.forms;
	for (var i=0;i<forms.length;i++) {
		forms[i].onsubmit = validate;
	}
}

//addEventSimple(window,'load',validateForms);

function validate() {
	var els = this.elements;
	var validForm = true;
	var firstError = null;
	for (var i=0;i<els.length;i++) {
		if (els[i].removeError)
			els[i].removeError();
		var req = els[i].getAttribute('validation');
		if (!req) continue;
		var reqs = req.split(' ');
		if (els[i].getAttribute('pattern'))
			reqs[reqs.length] = 'pattern';
		for (var j=0;j<reqs.length;j++) {
			if (!validationFunctions[reqs[j]])
				validationFunctions[reqs[j]] = emptyFunction;
			var OK = validationFunctions[reqs[j]](els[i]);
			if (OK != true) {
				var errorMessage = OK || validationErrorMessage[reqs[j]];
				writeError(els[i],errorMessage)
				validForm = false;
				if (!firstError)
					firstError = els[i];
				break;
			}
		}
	}

	if (!validForm) {
		alert("Please fill out all required fields ");
		location.hash = '#startOfForm';
	}
	return validForm;
	
}

function writeError(obj,message) {
	obj.className += ' errorMessage';
	obj.onchange = removeError;
	if (obj.errorMessage || obj.parentNode.errorMessage) return;
	var errorMessage = document.createElement('label');
	errorMessage.className = 'errorMessage';
	errorMessage.setAttribute('for',obj.id);
	errorMessage.setAttribute('htmlFor',obj.id);
	errorMessage.appendChild(document.createTextNode(message));
	obj.parentNode.appendChild(errorMessage);
	obj.errorMessage = errorMessage;
	obj.parentNode.errorMessage = errorMessage;
}

function removeError() {
	this.className = this.className.replace(/errorMessage/,'');
	if (this.errorMessage) {
		this.parentNode.removeChild(this.errorMessage);
		this.errorMessage = null;
		this.parentNode.errorMessage = null;
	}
	this.onchange = null;
}
