/*--- Avanquest WebEasy Document Script ---*/

IE=(navigator.appName.indexOf('Microsoft') >= 0);
NS=(navigator.appName.indexOf('Netscape') >= 0);
OP=(navigator.userAgent.indexOf('Opera') >= 0);
V4=(parseInt(navigator.appVersion) >= 4);
V5=(parseInt(navigator.appVersion)>=5);
V5=(V5||navigator.appVersion.indexOf("MSIE 5")!=-1);
V5=(V5||navigator.appVersion.indexOf("MSIE 6")!=-1);
MAC=(navigator.userAgent.indexOf('Mac')!=-1);

/**
 * @author Reallypride
 */
var Try = {
  these: function() {
    var returnValue;

    for (var i = 0, length = arguments.length; i < length; i++) {
      var lambda = arguments[i];
      try {
        returnValue = lambda();
        break;
      } catch (e) { }
    }

    return returnValue;
  }
};

var Option = {
	encode: function(param){
		var data = '';
		for(var key in param){
			data += key + '=' + escape(param[key]) + '&';
		}
		return data;
	}
}

var Ajax = {
	getTransport: function(){
		return Try.these(
			function() {return new XMLHttpRequest()},
			function() {return new ActiveXObject('Msxml2.XMLHTTP')},
			function() {return new ActiveXObject('Microsoft.XMLHTTP')}
    	) || false;
	},
	activeRequestCount: 0,
	request: function(url, data, callback){
		new AjaxRequest(url, data, callback);
	}
};

var AjaxRequest = function(url, data, callback){
	var transport;
	
	function init(){
		transport = Ajax.getTransport();
		var urlData = Option.encode(data);
		if(url.indexOf('?')>0){
			this.url = url + '&' + urlData;
		}else{
			this.url = url + '?' + urlData;
		}
		request();
	}
	
	function request(){
		transport.open('get', this.url);
		transport.onreadystatechange = onComplete;
		transport.send(null);
	}
	
	function onComplete(){
		if(transport.readyState == 4){
			if(transport.status == 200 || transport.status == 0){
				var json = transport.responseText.replace(/"/g,'');
				callback(json);
			}
		}
	}
	
	init();
}

String.prototype.trim=function(){
	return this.replace(/(^\s*)|(\s*$)/g,'');
}
function get(id){
	return document.getElementById(id);
}
function emailCheck(value){
	var regex=/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	return regex.test(value);
}
function cvvCheck(cardtype, value){
	var regex;
	if(cardtype=="Amex")
	    regex=/^\d{4}$/;
	else
	    regex=/^\d{3}$/;
	return regex.test(value);
}
function visaCheck(value){
	var regex=/^4\d{12}(\d{3})?$/;
	return regex.test(value);
}
function masterCheck(value){
	var regex=/^5[1-5]\d{14}$/;
	return regex.test(value);
}
function amexCheck(value){
	var regex=/^3[47]\d{13}$/;
	return regex.test(value);
}
function discoverCheck(value){
	var regex=/^6011\d{14}$/;
	return regex.test(value);
}
function expdateCheck(value){
	var regex=/^\d{2}\/\d{2}$/;
	return regex.test(value);
}
function userInfoCheck(){
	var firstName=get('firstName');
	if(firstName.value.trim()==''){
		alert('First Name is required!');
		firstName.focus();
		return false;
	}
	var lastName=get('lastName');
	if(lastName.value.trim()==''){
		alert('Last Name is required!');
		lastName.focus();
		return false;
	}
	var address=get('address');
	if(address.value.trim()==''){
		alert('Address is required!');
		address.focus();
		return false;
	}
	var city=get('city');
	if(city.value.trim()==''){
		alert('City / Provence is required!');
		city.focus();
		return false;
	}
	var state=get('state');
	if(state.value.trim()==''){
		alert('State is required!');
		state.focus();
		return false;
	}
	var zip=get('zip');
	if(zip.value.trim()==''){
		alert('Zip Code / Postal Code is required!');
		zip.focus();
		return false;
	}
	var country=get('country');
	if(country.value.trim()==''){
		alert('Country is required!');
		country.focus();
		return false;
	}
	var phone=get('phonenum');
	if(phone.value.trim()==''){
		alert('Contact phone number is required!');
		phone.focus();
		return false;
	}
	var email=get('email');
	if(email.value.trim()==''){
		alert('Email Address is required!');
		email.focus();
		return false;
	}
	if(!emailCheck(email.value.trim())){
		alert('Email Address is invalid!');
		email.focus();
		return false;
	}
	var business=get('business');
	if(business.value.trim()==''){
		alert('Business Name is required!');
		business.focus();
		return false;
	}
	var website=get('website');
	if(website.value.trim()==''){
		alert('Website URL is required!');
		website.focus();
		return false;
	}
	var username=get('username');
	if(username.value.trim()==''){
		alert('User Name is required!');
		username.focus();
		return false;
	}
	var password=get('password');
	if(password.value.trim()==''){
		alert('Password is required!');
		password.focus();
		return false;
	}
	var password1=get('password1');
	if(password1.value.trim()!=password.value.trim()){
		alert('Confirm Password and Password are not the same!');
		password1.focus();
		return false;
	}
	var agree=get('agree');
	if(!agree.checked){
		alert('Agree to the terms of service for the above accounts!');
		agree.focus();
		return false;
	}
	get('userInfoForm').submit();
	return true;
}
function orderInfoCheck(){
	var firstName=get('firstName');
	if(firstName.value.trim()==''){
		window.parent.alert('First Name is required!');
		firstName.focus();
		return false;
	}
	var lastName=get('lastName');
	if(lastName.value.trim()==''){
		window.parent.alert('Last Name is required!');
		lastName.focus();
		return false;
	}
	var address=get('address');
	if(address.value.trim()==''){
		window.parent.alert('Address is required!');
		address.focus();
		return false;
	}
	var city=get('city');
	if(city.value.trim()==''){
		window.parent.alert('City is required!');
		city.focus();
		return false;
	}
	var state=get('state');
	if(state.value.trim()==''){
		window.parent.alert('State/Provence is required!');
		state.focus();
		return false;
	}
	var zip=get('zip');
	if(zip.value.trim()==''){
		window.parent.alert('Zip Code/Postal Code is required!');
		zip.focus();
		return false;
	}
	var acct=get('acct');
	if(acct.value.trim()==''){
		window.parent.alert('Card Number is required!');
		acct.focus();
		return false;
	}
	var creditcardtype=get('creditcardtype');
	var result=true;
	switch(creditcardtype.value){
		case 'Visa':
			result=visaCheck(acct.value.trim());
			break;
		case 'MasterCard':
			result=masterCheck(acct.value.trim());
			break;
		case 'Amex':
			result=amexCheck(acct.value.trim());
			break;
		case 'Discover':
			result=discoverCheck(acct.value.trim());
			break;
		default:
			result=/^\d{10,20}$/.test(acct.value.trim());
			break;
	}
	if(!result){
		//window.parent.alert('Card Number is invalid!');
		//acct.focus();
		//return false;
	}
	var expdate=get('expdate');
	if(expdate.value.trim()==''){
		window.parent.alert('Expiration Date is required!');
		expdate.focus();
		return false;
	}
	if(!expdateCheck(expdate.value.trim())){
		window.parent.alert('Expiration Date is invalid!');
		expdate.focus();
		return false;
	}
	var cvv2=get('cvv2');
	if(cvv2.value.trim()==''){
		window.parent.alert('CVV Digits is required!');
		cvv2.focus();
		return false;
	}
	if(!cvvCheck(creditcardtype.value, cvv2.value.trim())){
		//window.parent.alert('CVV Digits is invalid!');
		//cvv2.focus();
		//return false;
	}
	get('orderInfoForm').submit();
	return true;
}
function calculateCallback(data){
	var amt=parseFloat(data);
	get('amt').value='$'+amt.toFixed(2);
	var div=window.parent.document.getElementById('marskdiv');
	div.style.display='none';
	window.parent.document.getElementById('marsktextdiv').style.display='none';
}
function calculate(){
	for(var i=1;i<=5;i++){
		var product=get('product'+i);
		if(product.checked){
			var price=parseFloat(get('price'+i).value);
			var setup=parseFloat(get('setup'+i).value);
			var amt=(price+setup);
			var code=get('code').value.trim()
			if(code!=''){
				var url='chat-g5live-ajax.php';
				var data={
					'code':code,
					'id':i,
					'method':'calculate'
				};
				var div=window.parent.document.getElementById('marskdiv');
				div.style.display='block';
				//div.focus();
				window.parent.document.getElementById('marsktextdiv').style.display='block';
				Ajax.request(url, data, calculateCallback);
			}else{
				get('amt').value='$'+amt.toFixed(2);
			}
		}
	}
}
function productchange(){
	for(var i=1;i<=5;i++){
		var product=get('product'+i);
		if(product.checked){
			var price=parseFloat(get('price'+i).value);
			var setup=parseFloat(get('setup'+i).value);
			var amt=(price+setup);
			var code=get('code').value.trim()
			get('amt').value='$'+amt.toFixed(2);
		}
	}
}
/*--- EndOfFile ---*/

