// syntheticMagic ABS - JS Core Lib ============================================



// =============================================================================










// -----------------------------------------------------------------------------
function SM_httpOBJCreator(){

	var NewXMLHTTPObject = false;

	if(window.XMLHttpRequest){
		var NewXMLHTTPObject = new XMLHttpRequest();
    //NewXMLHTTPObject.overrideMimeType('text/xml');
	}else if(window.ActiveXObject){
		var NewXMLHTTPObject = new ActiveXObject("Microsoft.XMLHTTP");
	}

	return NewXMLHTTPObject;
}
// -----------------------------------------------------------------------------










// -----------------------------------------------------------------------------
function SM_Form_Submit(FormID){

	//SM_Form_VerifyComplete();

	alert('Processing ' + FormID + ' Form As-Is... (NOT PROCESSING THIS IS HARDCODED)');

}
// -----------------------------------------------------------------------------








// -----------------------------------------------------------------------------
function SM_Form_VerifyComplete(){
	
	var form 				= document.forms[0];
	var alertCount	=	0;

  
  for(i = 0; i < form.elements.length; i++){

  	// IF --------------------
  	//if(form.elements[i].type == "text" && form.elements[i].value == "" || form.elements[i].value == "SSN" || form.elements[i].value == "ZIP Code" || form.elements[i].value == "Credit Card" || form.elements[i].value == "Display Name" || form.elements[i].value == "Phone" || form.elements[i].value == "Password" || form.elements[i].value == "eMail Address"){
  	if(form.elements[i].type == "text"){

			// allert count check ------------
			if(alertCount == 1){
				break;
			}

			// form input completion check ---
    	switch(form.elements[i].value){

    		case('eMail Address'):
    			//alert("Please Complete - " + form.elements[i].value);
    			form.elements[i].focus();
    			alertCount = 1;
    		break;

    		case('Password'):
    			//alert("Please Complete - " + form.elements[i].value);
    			form.elements[i].focus();
    			alertCount = 1;
    		break;

    		case('Phone'):
    			//alert("Please Complete - " + form.elements[i].value);
    			form.elements[i].focus();
    			alertCount = 1;
    		break;

    		case('Display Name'):
    			//alert("Please Complete - " + form.elements[i].value);
    			form.elements[i].focus();
    			alertCount = 1;
    		break;

    		case('Screen Name'):
    			//alert("Please Complete - " + form.elements[i].value);
    			form.elements[i].focus();
    			alertCount = 1;
    		break;

    		case('Credit Card'):
    			//alert("Please Complete - " + form.elements[i].value);
    			form.elements[i].focus();
    			alertCount = 1;
    		break;

    		case('ZIP Code'):
    			//alert("Please Complete - " + form.elements[i].value);
    			form.elements[i].focus();
    			alertCount = 1;
    		break;

    		case('SSN'):
    			//alert("Please Complete - " + form.elements[i].value);
    			form.elements[i].focus();
    			alertCount = 1;
    		break;

    		default:
    			//alert("ERR: Incomplete Form - DEFAULT SWITCH CASE");
    		break;
    		
    	}
    	// END switch --------------------



		// enable submit button ------------
    }else{
    	for(i = 0; i < form.elements.length; i++){
    		if(form.elements[i].type == 'button'){
    			SM_Button_State('enable', form.elements[i].id);
    		}
    	}
    }
    // END if --------------------------
    
  }
}
// -----------------------------------------------------------------------------











// -----------------------------------------------------------------------------
function SM_Button_State(State, ButtonID){

	if(State == 'disable'){
		document.getElementById(ButtonID).disabled 	= true;
	}else if(State == 'enable'){
		document.getElementById(ButtonID).disabled 	= false;
	}
}
// -----------------------------------------------------------------------------







// -----------------------------------------------------------------------------
function SM_Validate(FormComponent){


	var FormComponent_EXPLODED	= FormComponent.id.split('.');
	var	FormComponent_FORMTYPE	=	FormComponent_EXPLODED[0];
	var	FormComponent_TABLE			=	FormComponent_EXPLODED[1];
	var	FormComponent_FIELD			=	FormComponent_EXPLODED[2];




	// LEAD form -----------------------------------
 	switch(FormComponent_FORMTYPE){


		// -----------------------------------------
		case('lead'):
			
			var	FormComponent_VALUE			=	FormComponent.value;
			var	FormComponent_COMMAND		=	'ajax.form.validator';
			var	FormComponent_PARAMETER	=	FormComponent_TABLE+':'+FormComponent_FIELD+':'+FormComponent_VALUE;
			
			// execute ajax communication --------------
			SM_AjaxComm(FormComponent_COMMAND, FormComponent_PARAMETER);
			
		break;
		// -----------------------------------------
  
  
  }
	// ---------------------------------------------




}
// -----------------------------------------------------------------------------






// -----------------------------------------------------------------------------
function SM_Comm_InnerHTML(ArrayParameter){

	var AlertCount								= 0;

	var response_message 					= ArrayParameter[0];
	//var response_icon 						= window.location.protocol + '//' + window.location.hostname + '/' + ArrayParameter[1];
	var response_icon 						= ArrayParameter[1];
	var response_div_id 					= ArrayParameter[2];
	var response_validity					= ArrayParameter[3];
	
	switch(response_validity){
		case('valid'):
			var response_color				=	' color: #11a804; ';
		break;
		case('invalid'):
			var response_color				=	' color: #ff0006; ';
		break;
	}

	var response_innerHTML 				= '<table border=0 style="margin: 0px; padding: 0px;" cellpadding="0" cellspacing="0" class="SM_Ajax_Form_innerHTML"><tr> <td valign="middle"><img src="'+response_icon+'"/></td> <td width="5"></td> <td width="70" valign="middle" style="'+response_color+'">'+response_message+'</td></tr></table>';

	document.getElementById(response_div_id).innerHTML = response_innerHTML;
	
	/*
	INCOMPLETE :: input bgcolor & text color
	if(response_validity != 'valid'){
		response_bgColor = response_div_id.split('.');
		alert('lead.user.'+response_bgColor[1]);
		document.getElementById('lead.user.'+response_bgColor[1]).style.backgroundColor	=	'#f00';
		document.getElementById('lead.user.'+response_bgColor[1]).style.color						=	'#f00';
	}
	*/
	
	return false;
}
// -----------------------------------------------------------------------------









// -----------------------------------------------------------------------------
function SM_AjaxComm(Command, Parameter){


	var base_url 			= window.location.protocol + '//' + window.location.hostname;
	var target_url 		= base_url + '/execute';
	var params 				= '_function='+Command+'&_Parameter='+Parameter;


	var INTERNAL_XMLHTTPOBJ = SM_httpOBJCreator();

	INTERNAL_XMLHTTPOBJ.open('POST', target_url, true);
	INTERNAL_XMLHTTPOBJ.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	INTERNAL_XMLHTTPOBJ.setRequestHeader("Content-length", params.length);
	INTERNAL_XMLHTTPOBJ.setRequestHeader("Connection", "close");
	INTERNAL_XMLHTTPOBJ.onreadystatechange = function(){


		if(INTERNAL_XMLHTTPOBJ.readyState == 4 && INTERNAL_XMLHTTPOBJ.status == 200){

			if(INTERNAL_XMLHTTPOBJ.responseText){

				// update html ---------------------------
				SM_Comm_InnerHTML(INTERNAL_XMLHTTPOBJ.responseText.split('+'));

			}

			/*
			if(INTERNAL_XMLHTTPOBJ.responseText == '111'){
					alert('SMLib.AjaxComm:120 :: Command Completed');
					//Click2Call('execute.monitor.modalwindow');
					//window.location = "MyHome";
					//window.parent.location.href="http://syntheticmagic.com/";
			}else if(INTERNAL_XMLHTTPOBJ.responseText == '666'){
					//alert('Hack Attempt - IP Logged');
					alert('SMLib.AjaxComm:126 :: Specified Error');
					//window.parent.location.href="http://syntheticmagic.com/";
			}else{
					alert('SMLib.AjaxComm:129 :: Undefined Error');
			}
			*/
		}
	};
	INTERNAL_XMLHTTPOBJ.send(params);
}
// -----------------------------------------------------------------------------

























// -----------------------------------------------------------------------------
function Click2Call(Command){

	



	switch(Command){
		

		// initiate ----------------------------------
		case('execute.initiate.modalwindow'):
	
			var _InputClick2Call	=	document.getElementById('click2callInput').value;
			
			if(!_InputClick2Call || _InputClick2Call == 6025551212 || _InputClick2Call.length !=10 || _InputClick2Call.search(/\d{3}\d{3}\d{4}/) == -1){
				

				alert('Please Enter Your Phone Number');
				Click2Call('execute.initiate.reset');
				return false;
			}

			//alert('debug');
			//GB_showCenter('', 'http://syntheticmagic.com/Call-Me-Now-' + _InputClick2Call, 380, 600);

			var base_url 			= window.location.protocol + '//' + window.location.hostname;
			var target_url 		= base_url + '/execute';
			var params 				= '_function=modal.form.click2call' + '&_InputClick2Call=' + _InputClick2Call + '&_Command=' + 'click2call';


    	var INTERNAL_XMLHTTPOBJ = SM_httpOBJCreator();
    
    	INTERNAL_XMLHTTPOBJ.open('POST', target_url, true);
    	INTERNAL_XMLHTTPOBJ.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	INTERNAL_XMLHTTPOBJ.setRequestHeader("Content-length", params.length);
    	INTERNAL_XMLHTTPOBJ.setRequestHeader("Connection", "close");
    	INTERNAL_XMLHTTPOBJ.onreadystatechange = function(){
    		
    		//alert(INTERNAL_XMLHTTPOBJ.responseText);
    		
    		if(INTERNAL_XMLHTTPOBJ.readyState == 4 && INTERNAL_XMLHTTPOBJ.status == 200){
    			//alert(INTERNAL_XMLHTTPOBJ.responseText);
    
    			if(INTERNAL_XMLHTTPOBJ.responseText == '111'){
    					//alert('Click2Call :: Call Completed');
    					Click2Call('execute.monitor.modalwindow');
    					//window.location = "MyHome";
    					//window.parent.location.href="http://syntheticmagic.com/";
    			}else if(INTERNAL_XMLHTTPOBJ.responseText == '666'){
    					//alert('Hack Attempt - IP Logged');
    					alert('Click2Call :: Specified Error');
    					//window.parent.location.href="http://syntheticmagic.com/";
    			}else{
    					alert('Click2Call :: Undefined Error');
    			}
    		}
    	};
    	INTERNAL_XMLHTTPOBJ.send(params);


		break;
		// -------------------------------------------







		// monitor -----------------------------------
		case('execute.monitor.modalwindow'):

			var _InputClick2Call	=	document.getElementById('click2callInput').value;

			document.getElementById('div_click2call').innerHTML = '<img style="position: absolute; left: 110px; top: 22px;" src="/common/img/click2call/click2call_call-in-progress.png" />';

    	var speed = Math.round(2000 / 100); 
    	var timer = 0;
			setTimeout("Click2Call('execute.initiate.reset')",10000);
		break;
		// -------------------------------------------


		// reset -------------------------------------
		case('execute.initiate.reset'):
			document.getElementById('div_click2call').innerHTML = '<input style="position: absolute; left: 120px; top: 22px; width: 125px; border: 0px; font-size: 22px; color: #d2d2d2; background: transparent;" type="text" id="click2callInput" size="10" value="6025551212" onkeypress="return onEnter(event,this.form);" onclick="clickclear(this, \'6025551212\')" onfocus="clickclear(this, \'6025551212\')" onblur="clickrecall(this,\'6025551212\')" /><div id="click2call_button" onclick="Click2Call(\'execute.initiate.modalwindow\');" style="cursor: pointer; position: absolute; left: 0px; bottom: 0px; width: 40px; height: 30px; border: 0px solid #f00; z-index: 100;"></div>';
			//document.getElementById('click2callInput').style.color = "#" + "d2d2d2";
			//document.getElementById('click2callInput').value = 6025551212;
		break;
		// -------------------------------------------



	}
}
// -----------------------------------------------------------------------------










// -----------------------------------------------------------------------------
function onEnter(evt,frm) {
	var keyCode = null;
	if(evt.which){
		keyCode = evt.which;
	}else if(evt.keyCode){
		keyCode = evt.keyCode;
	}
	
	if(13 == keyCode){
		Click2Call('execute.initiate.modalwindow');
		return false;
	}
	return true;
}
// -----------------------------------------------------------------------------











// -----------------------------------------------------------------------------
function clickclear(thisfield, defaulttext, color){
	if(thisfield.value == defaulttext){
		thisfield.value = "";
		if(!color){
			color = "16baff";
		}
		thisfield.style.color = "#" + color;
	}
}
// -----------------------------------------------------------------------------











// -----------------------------------------------------------------------------
function clickrecall(thisfield, defaulttext, color){
	if(thisfield.value == ""){
		thisfield.value = defaulttext;
		if(!color){
			color = "d2d2d2";
		}
		thisfield.style.color = "#" + color;
	}
}
// -----------------------------------------------------------------------------




