/***** ScriptReaction Mutli Media Development - All Code Copyright ScriptReaction - www.scriptreaction.com *****/

var formHandler = {
	launch: function (formId){
		formHandler.formId = formId;
		formHandler.provStatError = 0;
		
		//create containters
		formHandler.fields = new Array();
		formHandler.addFields = new Array();
		
		//success
		if(formHandler.fieldError == 'submitted'){
			var form = formHandler.formId;
			var success = '<span style="font-size:13px;color:#cc0000;"><b>Thanks for taking the time to contact ScriptReaction, ' + formHandler.userName + '.</span></b><br />';
				success+= '<img src="'+ global.base +'assets/gfx/email.jpg" style="float:right;margin:5px 0px 0px 5px;" />';
				success+= '<b>Your information has been successfully submitted.</b><br /><br />';
				
				if(form == 'dataForm_gi'){ //general inquires
					success+= 'ScriptReaction will respond to you as soon as possible. However, should you require immediate assistance, place call 519-455-0865.';
				}
				
				if(form == 'dataForm_rq'){ //request quote
					success+= 'Please allow 2-3 business days for ScriptReaction to process your quote request. If you require immediate assistance, place call 519-455-0865.';
				}
				
				if(form == 'dataForm_fb'){ //feedback
					success+= 'ScriptReaction appreciates your time and comments. We will definitely take the time to consider your feedback.';
				}
				
				success+= "<br /><br /><a href=\"http://www.scriptreaction.com/portfolio/\">Check out ScriptReaction's Portfolio...</a>";				
				success+= "<br /><a href=\"http://www.scriptreaction.com/\">Go to the ScriptReaction Home Page...</a>";
			global.setDivContent('bdy_cnt',success);
			return;
		}
		
		//check for field error
		if(formHandler.fieldError > ''){
			var error = formHandler.fieldError;
			if(error == 'locProvince'){
				formHandler.unlockCountry('Canada');
				formHandler.provStatError = 1;
			}else if(error == 'locState'){
				formHandler.unlockCountry('United States of America');
				formHandler.provStatError = 1;
			}
			var errorField = document.getElementById('fieldCtr_' + 	error);
			errorField.className = 'hasError';
			var errorText = document.getElementById('e_' + error);
			errorText.style.visibility = 'visible';
			global.setDivContent('bdy_txt','<img src="' + global.base + 'assets/gfx/form_errortxt.png" style="margin:-4px 0px 0px -7px;" />');
		}
		
		//check for previous submit
		if(formHandler.fieldVars > ''){
			var returnArray = formHandler.fieldVars.split('&');
			returnArray.splice(returnArray.length-1,1);
			for(var itemCount=0; itemCount<returnArray.length; itemCount++){
				var whichItem = returnArray[itemCount];
				var itemParam = whichItem.split('=');
				var itemField = itemParam[0];
				var itemValue = itemParam[1];
				formHandler['returnVar_' + itemField] = itemValue;
			}
		}
		
		var formHolder = document.getElementById('bdy_cnt');
		var formTypes = new Array('input','select','textarea');
		
		for(var typeCount=0; typeCount<formTypes.length; typeCount++){
			var whichType = formTypes[typeCount];
			this['formType_'+whichType] = formHolder.getElementsByTagName(whichType);
			var whichTypeArray = this['formType_'+whichType];
			for(var itemCount=0; itemCount<whichTypeArray.length; itemCount++){
				var whichItem = whichTypeArray[itemCount];
				var handle = whichItem.className; //required||optional
				var fieldId = whichItem.name;
				if(typeof(handle) != 'undefined' && handle > ''){
					if(handle == 'required' || handle =='optional'){
						formHandler.fields.push([fieldId,whichType,handle]);
					}
				}
				var hasReturn = formHandler['returnVar_' + fieldId];
				if(typeof(hasReturn) != 'undefined'){
					if(hasReturn > ''){
						document[formHandler.formId][fieldId].value = unescape(hasReturn);
						if(fieldId == 'locCountry' && !formHandler.provStatError){
							formHandler.unlockCountry();
						}
					}
				}
			}
		}
		if(!formHandler.provStatError){
			var x = document[formHandler.formId].locCountry.value;
			if(x != ''){
				formHandler.unlockCountry(x);
			}
		}
	},
	doSubmit: function (){
		for(var addCount=0; addCount<formHandler.addFields.length; addCount++){
			var whichAdd = formHandler.addFields[addCount];
			if(whichAdd > ''){
				formHandler.fields.push(whichAdd);
			}
		}
		var returnValues = '';
		for(var fieldCount=0; fieldCount<formHandler.fields.length; fieldCount++){
			var whichField = formHandler.fields[fieldCount];
			var fieldId = whichField[0];
			whichField[3] = escape(document[formHandler.formId][fieldId].value);
			returnValues += fieldId.toString() + '=' + whichField[3] + '&';
		}
		document[formHandler.formId].fieldParams.value = formHandler.fields.toString();
		document[formHandler.formId].fieldValues.value = returnValues;
		if(document[formHandler.formId].formSession.value == 0){
			document[formHandler.formId].formSession.value = Math.ceil(Math.random()*999999999);
		}
	},
	doReset: function (){
		if(formHandler.fieldError > ''){
			var error = formHandler.fieldError;
			var errorField = document.getElementById('fieldCtr_' + 	error);
			errorField.className = '';
			var errorText = document.getElementById('e_' + error);
			errorText.style.visibility = 'hidden';
		}
		formHandler.unlockCountry('none');
	},
	unlockCountry: function (x){
		var addHandle = 'required';
		switch(formHandler.formId){
			case 'dataForm_gi': //general inquiries
				addHandle = 'required';
				break;
			case 'dataForm_fb': //feedback
				addHandle = 'optional';
				break;
		}
		var handleDsp = formHandler.getLocHandle();
		var area1 = 'area_provState';
		var area2 = 'area_postZip';
		formHandler.countryArea1_disabled = '<table cellpadding="0" cellspacing="0" class="subForm"><tr><th class="leftWidth disable">Province/State' + handleDsp + '</th><td class="rightWidth"><select disabled="disabled" name="locProvState"><option selected value="" /></select></td></tr></table>';
		formHandler.countryArea2_disalbed = '<table cellpadding="0" cellspacing="0" class="subForm"><tr><th class="leftWidth disable">Postal Code/ZIP' + handleDsp + '</th><td class="rightWidth"><select disabled="disabled" name="locPostZip"><option selected value="" /></select></td></tr></table>';
		if(typeof(x)!='undefined'){
			if(x > '') var condition = x;
		}else{
			var condition = document[formHandler.formId].locCountry.value;
		}
		switch(condition){
			case 'Canada':
				global.setDivContent(area1,formHandler.getLocProv());
				global.setDivContent(area2,formHandler.getLocPostZip('post'));
				formHandler.addFields[0] = ['locProvince','input',addHandle];
				formHandler.addFields[1] = ['locPostal','input','optional'];
				break;
			case 'United States of America':
				global.setDivContent(area1,formHandler.getLocState());
				global.setDivContent(area2,formHandler.getLocPostZip('zip'));
				formHandler.addFields[0] = ['locState','input',addHandle];
				formHandler.addFields[1] = ['locZip','input','optional'];
				break;
			case 'Other':
				global.setDivContent(area1,'');
				global.setDivContent(area2,'');
				formHandler.addFields[0] = '';
				formHandler.addFields[1] = '';
				break;
			default:
				global.setDivContent(area1,formHandler.countryArea1_disabled);
				global.setDivContent(area2,formHandler.countryArea2_disalbed);
				formHandler.addFields[0] = '';
				formHandler.addFields[1] = '';
				break;
		}
	},
	getLocHandle: function (){
		var handleDsp = '*';
		switch(formHandler.formId){
			case 'dataForm_gi': //general inquiries
				handleDsp = '*';
				break;
			case 'dataForm_fb': //feedback
				handleDsp = '&nbsp;';
				break;
		}
		return handleDsp;
	},
	getLocProv: function (){
		var x = '<table cellpadding="0" cellspacing="0" class="subForm">';
			x+= '<tr id="fieldCtr_locProvince">';
			x+= '<th class="leftWidth">Province' + formHandler.getLocHandle() + '</th>';
			x+= '<td class="rightWidth">';
			x+= '<select name="locProvince">';
			x+= '<option selected value="">Please select...';
			x+= '<option value="AB">Alberta';
			x+= '<option value="BC">British Columbia';
			x+= '<option value="MB">Manitoba';
			x+= '<option value="NB">New Brunswick';
			x+= '<option value="NFLD">Newfoundland and Labrador';
			x+= '<option value="NS">Nova Scotia';
			x+= '<option value="ON">Ontario';
			x+= '<option value="PEI">Prince Edward Island';
			x+= '<option value="PQ">Quebec';
			x+= '<option value="SK">Saskatchewan';
			x+= '</select>';
			x+= '</td>';
			x+= '</tr>';
			x+= '</table>';
		return x;
	},
	getLocState: function (){
		var x = '<table cellpadding="0" cellspacing="0" class="subForm">';
			x+= '<tr id="fieldCtr_locState">';
			x+= '<th class="leftWidth">State' + formHandler.getLocHandle() + '</th>';
			x+= '<td class="rightWidth">';
			x+= '<select name="locState">';
			x+= '<option selected value="">Please select...';
			x+= '<option value="AL">Alabama';
			x+= '<option value="AK">Alaska';
			x+= '<option value="AZ">Arizona';
			x+= '<option value="AR">Arkansas';
			x+= '<option value="CA">California';
			x+= '<option value="CO">Colorado';
			x+= '<option value="CT">Connecticut';
			x+= '<option value="DC">D.C.';
			x+= '<option value="DE">Delaware';
			x+= '<option value="FL">Florida';
			x+= '<option value="GA">Georgia';
			x+= '<option value="HI">Hawaii';
			x+= '<option value="ID">Idaho';
			x+= '<option value="IL">Illinois';
			x+= '<option value="IN">Indiana';
			x+= '<option value="IA">Iowa';
			x+= '<option value="KS">Kansas';
			x+= '<option value="KY">Kentucky';
			x+= '<option value="LA">Louisiana';
			x+= '<option value="ME">Maine';
			x+= '<option value="MD">Maryland';
			x+= '<option value="MA">Massachusetts';
			x+= '<option value="MI">Michigan';
			x+= '<option value="MN">Minnesota';
			x+= '<option value="MS">Mississippi';
			x+= '<option value="MO">Missouri';
			x+= '<option value="MT">Montana';
			x+= '<option value="NE">Nebraska';
			x+= '<option value="NV">Nevada';
			x+= '<option value="NH">New Hampshire';
			x+= '<option value="NJ">New Jersey';
			x+= '<option value="NM">New Mexico';
			x+= '<option value="NY">New York';
			x+= '<option value="NC">North Carolina';
			x+= '<option value="ND">North Dakota';
			x+= '<option value="OH">Ohio';
			x+= '<option value="OK">Oklahoma';
			x+= '<option value="OR">Oregon';
			x+= '<option value="PA">Pennsylvania';
			x+= '<option value="RI">Rhode Island';
			x+= '<option value="SC">South Carolina';
			x+= '<option value="SD">South Dakota';
			x+= '<option value="TN">Tennessee';
			x+= '<option value="TX">Texas';
			x+= '<option value="UT">Utah';
			x+= '<option value="VT">Vermont';
			x+= '<option value="VA">Virginia';
			x+= '<option value="WA">Washington';
			x+= '<option value="WV">West Virginia';
			x+= '<option value="WI">Wisconsin';
			x+= '<option value="WY">Wyoming';
			x+= '</select>';
			x+= '</td>';
			x+= '</tr>';
			x+= '</table>';
		return x;
	},
	getLocPostZip: function (x){
		switch(x){
			case 'post':
				var x1 = 'Postal Code';
				var x2 = 'locPostal';
				var x3 = '6';
				break;
			case 'zip':
				var x1 = 'ZIP';
				var x2 = 'locZip';
				var x3 = '5';
				break;
		}
		var y = '<table cellpadding="0" cellspacing="0" class="subForm">';
			y+= '<th class="leftWidth">' + x1 + '&nbsp;</th>';
			y+= '<td class="rightWidth"><input name="' + x2 + '" maxlength="' + x3 + '" /></td>';
			y+= '</table>';
		return y;
	}
}