﻿function $(eleId){
	return document.getElementById(eleId);
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function trim(str)
{
    str = String(str);
	return str.replace(/^\s+|\s+$/g,"");
}  

function validate()
{
    var alert = '';
    var val = trim($("txt_dealer").value);
    if(val == ""){
        alert += "Please enter Dealer name.\n";
    }
    
    val = trim($("txt_contact").value);
    if(val == ''){
        alert += "Please enter Contact person.\n";
    }

    val = getIntegersOnly(trim($("txt_phone").value));
    if(val == ''){
        alert += "Please enter Telephone number.\n";
    }else if(val.length > 0 && val.length < 9){
        alert += "Invalid Telephone number.\n";
    }

    val = trim($("txt_state").value);
    if(val == ''){
        alert += "Please enter State.\n";
    }
    
    return alert;
}   

function showContent(){
    $("result").style.display = 'none';
    $("result").innerHTML = '';
    $("btn_info").style.display = '';
}

YUI({combine: true, timeout: 10000}).use("node", "anim", "io",

	function(Y) {
		//Get a reference to the Node that we are using
		//to report results:
		
		
		$("result").style.display = 'block';
		var div = Y.Node.get('#result');
		var dealer = Y.Node.get('#txt_dealer');
		var contact = Y.Node.get('#txt_contact');
		var phone = Y.Node.get('#txt_phone');
		var state = Y.Node.get('#txt_state');
        
		//A function handler to use for successful requests:
		var handleSuccess = function(ioId, o){
			if(o.responseText !== undefined){
				var s =  o.responseText + '<br /><a class="resend" onclick="showContent();">Click here to Send another Contact</a>';
				div.set("innerHTML", s);
			}
		}

		//A function handler to use for failed requests:
		var handleFailure = function(ioId, o){
			if(o.responseText !== undefined){
				var s = "Error occured while sending, please try again.";
				div.set("innerHTML", s);
			}
		}

		//Subscribe our handlers to IO's global custom events:
		Y.on('io:success', handleSuccess);
		Y.on('io:failure', handleFailure);

		//The URL of the resource to which we're POSTing data:
		var sUrl = "email.aspx";

		//Handler to make our XHR request when the button is clicked:
		function makeRequest(){
       		/* Configuration object for POST transaction */
       		var valid = validate();
       		if(valid == ''){
		        var cfg = {
		            method: "POST",
			        data: "dealer=" + trim(dealer.get("value")) + "&contact=" + trim(contact.get("value")) + "&phone=" + trim(phone.get("value")) + "&state=" + trim(state.get("value")),
			        headers: { 'X-Transaction': 'POST Preferred Email'}
		        };
                
                $("result").style.display = 'block';
                $("btn_info").style.display = 'none';
			    div.set("innerHTML", "Sending...");
			    var request = Y.io(sUrl, cfg);
			}else{ alert(valid); }
		}

		// Make a request when the button is clicked:
		Y.on("click", makeRequest, "#send");
	}
);

function stopEvent(e){
	if (!e){ var e = window.event; }   // stop event propagation - cross browser calls
	e.cancelBubble = true;
	if (e.stopPropagation){ e.stopPropagation(); }    
}


//------

function formatPhone_onKeyUp(obj) {
	if (keyCodeOK()) {
		if(!isPhoneFormat(obj.value)) {
			obj.value = makePhoneFormat(getIntegersOnly(obj.value),false) ; 
		}
	}
}

function makePhoneFormat(val,ExtnAllowed) {
	if ( (val.length >10 )&&(ExtnAllowed)) 	{ return "("+val.substring(0,3)+") "+val.substring(3,6)+"-"+val.substring(6,10)+" Extn."+val.substring(10,val.length)  }
	else if (val.length >10 ) 				{ return "("+val.substring(0,3)+") "+val.substring(3,6)+"-"+val.substring(6,10)  }
	else if (val.length >6 ) 				{ return "("+val.substring(0,3)+") "+val.substring(3,6)+"-"+val.substring(6,val.length) }
	else if (val.length >3 ) 				{ return "("+val.substring(0,3)+") "+val.substring(3,val.length) ; }
	else 									{ return val ; }
}
function isPhoneFormat(val) {
	if ( (getIntegersOnly(val).length==10)&&(val.length==14) ){
		if ( (val.substring(0,1)=="(")&&(val.substring(4,6)==") ")&&(val.substring(9,10)=="-") ) {return true ;} 
	}
	return false ;
}

function getIntegersOnly(value) {
	if ( value.length > 1 ) 				{ return returnOnlyInteger(value.charAt(0))+getIntegersOnly(value.substring(1,value.length)) ; } 
	else if ( value.length <= 1 ) 			{ return returnOnlyInteger(value) ; } 
	else 									{ return "" ; }
	//------------
	function returnOnlyInteger(val) { if ((val >= "0")&&(val <= "9")) { return val ; } else { return "" ; } }
}
function keyCodeOK() {
    var event = AF_getEvent(window.event);
	if (event) {
		if(event.keyCode== 9) {return false ;}	// Tab
		if(event.keyCode== 16) {return false ;}	// Alt-Tab
	}
	return true ;
}

function setErrorImage(errImgId, mode , alt) {
	if( $(errImgId) ) { 
		if ( mode == 1 ) {
			$(errImgId).style.visibility = "visible" ;
			$(errImgId).title = alt  ;
		}
	}
}

function AF_getEvent(e) {
    if (window.event){
        var e = window.event;
    }
    return e;
}

function onlyNumbersPlusA_KC( o )  {
    var event = AF_getEvent(o);
	if ( ( event.keyCode <= 57 ) && ( event.keyCode >= 48) ) { }
	else if ( event.keyCode == 32 ) {} // " "
	else if ( event.keyCode == 45 ) {} // -	
	else if ( event.keyCode == 47 ) {} // /
	else if ( event.keyCode == 40 ) {} // (
	else if ( event.keyCode == 41 ) {} // )
		else { event.returnValue = false; }
}