// JavaScript Document
// JavaScript Document

var Errors = new Object(); 

// Let set all our element to error avoid sending/submiting  premature from
 
Errors["txtTwinContact"] = 1;
Errors["txtTwinContactCompany"] = 1;
Errors["txtReferred"] = 1;
Errors["txtTwinContactEmail"] = 1;
Errors["txtReferralEmail"] = 1;
Errors["txtTwinContactPhone"] = 1;
Errors["txtReferredPhone"] = 1;
		

function Error(fromwho,bool) {
// if passsing a bool any argument. mark as error other wise remove the error status
// this is for an Object Array
	if (bool) { Errors[fromwho] = 1; } 
	else { Errors[fromwho] = 0; } // if no passed bool arg. remove error
	//alert(fromwho);
}

function handleServerResult_Submit (res)
{
//alert("wass happenig");

getElement("Layer4").innerHTML =  res.responseText;

}




function mysubmit() {
	//  mysubmit	
	///document.reffer.submit()
	
	
///	note = getElement('note');
///	note.innerHTML= "<table width='697' border='0'><tr><td width='651' colspan='8'><p class='style1'>Thank you for your referral.</p><p class='style1'>You  will be contacted shortly. </p></td></tr><tr><td colspan='8'><div align='center'><a href='http://www.twin.net'>home</a></div></td>  </tr></table>";
	
d = MochiKit.Async.doSimpleXMLHttpRequest("process.php",
{ 'txtTwinContact': getElement('txtTwinContact').value,
  'txtTwinContactEmail': getElement('txtTwinContactEmail').value,
  'txtTwinContactCompany': getElement('txtTwinContactCompany').value,
  'txtTwinContactPhone': getElement('txtTwinContactPhone').value,
  'txtReferred': getElement('txtReferred').value,
  'txtReferralEmail': getElement('txtReferralEmail').value,
  'txttxtReferralEmail': getElement('txtReferralEmail').value });
d.addCallback(handleServerResult_Submit);

}
function checkError() { 
	
	el = getElement('submit');
	el.innerHTML = "<img src='../images/submit_green.gif' onclick='mysubmit();'/> ";
	
	for ( v in Errors )
		{
			if (Errors[v]) { el.innerHTML = "<img src='../images/submit_red.gif'/> "; }
			
		}


	//if (Errors[forwho]){
	//el = getElement('submit')
	//el.innerHTML = "<img src='../images/submit_red.gif' onclick='document.reffer.submit();'/> ";
//	}
//	else {
//		el = getElement('submit')
//			el.innerHTML = " <img src='../images/submit_green.gif'onclick='document.reffer.submit();'/> ";
//	}
} // check Object Array error status

function myLoadFunction(eventObj){
	
	elementsToApplyOnInput = MochiKit.DOM.getElementsByTagAndClassName("input", "required");
	/*now that we have all of the elements that
	match our transformation query run our function
	that connects everything, calling it once
	for every item.*/
	
	MochiKit.Base.map(	connectOneClickOnly, elementsToApplyOnInput );
}

MochiKit.Signal.connect(window, "onload", myLoadFunction);
//end main and load

function connectOneClickOnly(linkElement) {
	/*
	This function gets called for each A of
	type "oneclick" we have. Hook it up so
	that our handleJSHREFClick gets called
	(properly) when a user clicks the
	linkElement object
	*/
	/*Each of our calls to handleJSHREFClick, in
	addition to getting the event object passed to
	it via MochiKit.Signal, also gets called with
	the object to call to create our replacement.
	*/
	
	///newH = partial(handleJSHREFClick, makeNewObj);
	///MochiKit.Signal.connect( linkElement,'onblur', newH );
	MochiKit.Signal.connect( linkElement,'onblur', handleOnBlurforInput );

} //end connectOneClickOnly

function makeNewObj(target){
	/*
	Create a new item to replace our target
	with.
	Return the created element
	*/
	makeNew = SPAN({});

	//inHTMLStr = "One Click Only!";
	inHTMLStr = target.name;
	//inHTMLStr = keys(target);
	makeNew.innerHTML = inHTMLStr;
	return makeNew;
}

function handleOnBlurforInput(eventObj){
	// since the div element id name is the same as our input name except for the txt prefix
	// will will strip the txt prefix to know where to insert our error into what div.
	// or past it to a function.
	
	
	//element.innerHTML= eventObj.src().name // testing/debug for name value
	switch (eventObj.src().name){
		// validate valid string 
		case "txtTwinContact":
		case "txtTwinContactCompany":
		case "txtReferred":
			
			var ourElement = eventObj.src().name.substring(3); //strip off the prefix ( to known which div )
			element = getElement(ourElement) // elmenent to response event too
			if(eventObj.src().value.match(/[a-zA-Z]/)) {
				element.innerHTML = "<img src='../images/check.gif' width='15' height='11' />"; 
				Error(eventObj.src().name);
				}
			else {
				
				element.innerHTML = "<img src='../images/x.gif' width='15' height='11' />";
				 Error(eventObj.src().name,true);
			}
		
	 		checkError(eventObj.src().name);
		
		break;	
		
		
		// check for valid email
		case "txtTwinContactEmail":
		case "txtReferralEmail":
		
			var ourElement = eventObj.src().name.substring(3); //strip off the prefix ( to known which div )
			element = getElement(ourElement) // elmenent to response event too
			//element.innerHTML = eventObj.src().value;
			if((eventObj.src().value.indexOf(".") > 2) && (eventObj.src().value.indexOf("@") > 0)) { 		             element.innerHTML = "<img src='../images/check.gif' width='15' height='11' />"; 
			 Error(eventObj.src().name);
			}
			 else { element.innerHTML = "<img src='../images/x.gif' width='15' height='11' />"; 
			 Error(eventObj.src().name,true);
				}
			
			checkError(eventObj.src().name);
			
			
		break;
		
		// Test for valid phone on regexpression
		case "txtTwinContactPhone":
		case "txtReferredPhone":
			var ourElement = eventObj.src().name.substring(3); //strip off the prefix ( to known which div )
			element = getElement(ourElement) // elmenent to response event too
			if(eventObj.src().value.match(/^.{0,1}[1-9]\d{2}.{0,1}\s?\d{3}.*\d{4}$/)) {
				element.innerHTML = "<img src='../images/check.gif' width='15' height='11' />"; 
				Error(eventObj.src().name);
				}
			else {
				
				element.innerHTML = "<img src='../images/x.gif' width='15' height='11' />";
				 Error(eventObj.src().name,true);
			}
		
	 		checkError(eventObj.src().name);
			
	    break;
		default :
			checkError(eventObj.src().name);
	}
	
	
} //end click functionality code