var xmlHttp;
var xmlHttp1;
var visitorNo;
var custtoken;
var sourceIP;
var intervalId=0;
var uniqueid;
var callResponse;
var responseStatus;
var brandingStatus = -1 ;
var requestID;
var localvariable = 0;
var timeOut = -1;
var domainName = 'c4c.phonon.in';
var	IDLE = 0;
var	CONNECTED = 1;
var BUSY = 2;
var NO_REPLY = 3;
var OTHER = 4;
var SUCCESS = 5;
var USER_HANGUP = 6;
var TO_BE_CONNECTED = 7;
var NOT_CONNECTED = 8;
var INVALID_NUMBER_FORMAT = 9;
var UNOBTAINABLE_NUMBER = 10;
var CONNECTION_ALIVE = '-6';
var ADV_CAN_NOT_CONTACTED   = "The advertiser can not be contacted at this moment.";
var VIS_CAN_NOT_CONTACTED   = "We are unable to contact your number.";
var VIS_ADV_CONNECTED	   = "Connected to the advertiser";
var CALLING_VIS			 = "calling you...<br/>you'll get a call from +912656698800.";
var CALLING_ADV			 = "calling advertiser...<br/>please stay on the line.";
var INVALID_NO			  = "You have entered an invalid number";
var INVALID_NO_MSG		  = "<br/>Please enter a valid 10 digit India number without 0 but with city code / full mobile number and no spaces.";
var THANK_YOU			   = "Thank you for using Click-to-Call.";
var SORRY				   = "Sorry, We are unable to contact you. Please call us later.";
var CAPTCHA_INVALID		 = "Captcha entered is invalid.";
var NUMBER_BLACKLISTED	  = "Sorry, Your Phone number is in Blacklist.";
var IP_BLACKLISTED		  = "Sorry, Your IP address is in Blacklist.";
var TRY_AGAIN			   = "Unable to contact you. Please try again later.";
var MAX_TRY				 = "You have exceeded the maximum number of attempts.<br>Please close this window and try again.";

includeCSS();
DHTML_modalMessage = function(){
var url;
var htmlOfModalMessage;
var divs_transparentDiv;
var divs_content;
var iframe;
var layoutCss;
var width;
var height;
var existingBodyOverFlowStyle;
var dynContentObj;
var cssClassOfMessageBox;
var shadowDivVisible;
var shadowOffset;
var MSIE;
this.url = '';
this.htmlOfModalMessage = '';
this.layoutCss = 'modal-message.css';
this.height = 200;
this.width = 400;
this.cssClassOfMessageBox = false;
this.shadowDivVisible = true;
this.shadowOffset = 5;
this.MSIE = false;
if(navigator.userAgent.indexOf('MSIE')>=0) this.MSIE = true;
}
DHTML_modalMessage.prototype ={
close : function()
{
	this.divs_content.style.display='none';
	this.divs_shadow.style.display='none';
	if(this.MSIE)this.iframe.style.display='none';
},
setHtmlContent : function(newHtmlContent){
this.htmlOfModalMessage = newHtmlContent;
},
setSize : function(width,height){
if(width)this.width = width;
if(height)this.height = height;
},
display : function(){
if(!this.divs_transparentDiv){
this.__createDivs();
}
this.divs_content.style.display='block';
this.divs_shadow.style.display='block';
if(this.MSIE)this.iframe.style.display='block';
this.__resizeDivs();
window.refToThisModalBoxObj = this;
setTimeout('window.refToThisModalBoxObj.__resizeDivs()',150);
this.__insertContent();	// Calling method which inserts content into the message div.
},
__createDivs : function(){
this.divs_content = document.createElement('DIV');
this.divs_content.className = 'modalDialog_contentDiv';
this.divs_content.id = 'DHTMLSuite_modalBox_contentDiv';
this.divs_content.style.zIndex = 100000;
if(this.MSIE){
this.iframe = document.createElement('<IFRAME src="about:blank" frameborder=0>');
this.iframe.style.zIndex = 90000;
this.iframe.style.position = 'absolute';
document.body.appendChild(this.iframe);
}
document.body.appendChild(this.divs_content);
this.divs_shadow = document.createElement('DIV');
this.divs_shadow.className = 'modalDialog_contentDiv_shadow';
this.divs_shadow.style.zIndex = 95000;
document.body.appendChild(this.divs_shadow);
},
__resizeDivs : function()
{
var topOffset = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
if(this.cssClassOfMessageBox)
this.divs_content.className=this.cssClassOfMessageBox;
else
this.divs_content.className='modalDialog_contentDiv';
var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
var sl = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
window.scrollTo(sl,st);
setTimeout('window.scrollTo(' + sl + ',' + st + ');',10);
this.__repositionTransparentDiv();
var brSize = this.__getBrowserSize();
var bodyWidth = brSize[0];
var bodyHeight = brSize[1];
this.divs_content.style.width = this.width + 'px';
this.divs_content.style.height= this.height + 'px';
var tmpWidth = this.divs_content.offsetWidth;
var tmpHeight = this.divs_content.offsetHeight;
this.divs_content.style.left = Math.ceil((bodyWidth - tmpWidth) / 2) + 'px';
this.divs_content.style.top = (Math.ceil((bodyHeight - tmpHeight) / 2) +  topOffset) + 'px';
if(this.MSIE){
this.iframe.style.left = this.divs_content.style.left;
this.iframe.style.top = this.divs_content.style.top;
this.iframe.style.width = this.divs_content.style.width;
this.iframe.style.height = this.divs_content.style.height;
}
this.divs_shadow.style.left = (this.divs_content.style.left.replace('px','')/1 + this.shadowOffset) + 'px';
this.divs_shadow.style.top = (this.divs_content.style.top.replace('px','')/1 + this.shadowOffset) + 'px';
this.divs_shadow.style.height = tmpHeight + 'px';
this.divs_shadow.style.width = tmpWidth + 'px';
if(!this.shadowDivVisible)this.divs_shadow.style.display='none';
},
 __repositionTransparentDiv : function(){},
__insertContent : function()
{
if(this.url){
ajax_loadContent('DHTMLSuite_modalBox_contentDiv',this.url);
}else{
this.divs_content.innerHTML = this.htmlOfModalMessage;}
},
__getBrowserSize : function(){
var bodyWidth = document.documentElement.clientWidth;
var bodyHeight = document.documentElement.clientHeight;
var bodyWidth, bodyHeight;
if (self.innerHeight){
bodyWidth = self.innerWidth;
bodyHeight = self.innerHeight;
}  else if (document.documentElement && document.documentElement.clientHeight) {
bodyWidth = document.documentElement.clientWidth;
bodyHeight = document.documentElement.clientHeight;
} else if (document.body) {
bodyWidth = document.body.clientWidth;
bodyHeight = document.body.clientHeight;}
return [bodyWidth,bodyHeight];}
}
var messageObj = new DHTML_modalMessage();
messageObj.setShadowOffset;
messageObj.setCssClassMessageBox;
messageObj.setShadowDivVisible;

function callme(custtoken, udf1, udf2,udf3, udf4, udf5)
{
	var url	   = "http://" + domainName + "/C4CWidgetNew/CallMe.jsp";
	var width	 = "315";
	var height	= "325";
	var messageTitle = "";
	var closeImagePath =  "http://www.phonon.in/C4C/Images/close.gif";
	var urlWithParameter = url+'?custtoken='+custtoken+'&udf1='+udf1+'&udf2='+udf2+'&udf3='+udf3+'&udf4='+udf4+'&udf5='+udf5;
	messageTitle = '<table class="modalDialog_titleArea" width = "100%"><tr><td align="center" width="90%">';
	if(custtoken == 'lrs193wf')
	{
		var brandingImage = "http://www.phonon.in/C4C/Images/"+custtoken+".png";
		messageTitle = messageTitle + '<img src="' + brandingImage + '"/>';
	}
	else
	{
		messageTitle = messageTitle + 'Call Me Now!!';
	}
	messageTitle = messageTitle + '</td><td align="center" width="10%"><img src="'+closeImagePath+'" border="0" WIDTH="14" HEIGHT="14" onclick="closeMessage();return false"> </td><tr><table>'
	var messageContent = '<iframe src="'+urlWithParameter+'" id="iframePopup" class="frame" width="'+(width-20)+'" height="'+(height-60)+'" frameborder="0"></iframe>';
	messageObj.setHtmlContent(messageTitle + messageContent);
	messageObj.setSize(width, height);
	messageObj.display();
}

function closeMessage(){
messageObj.close();
}

function getCurrCallStatus(reqID){
requestID = reqID;
var str = "retriveCurrCallStatus()";
intervalId = window.setInterval(str,5000);
}
	
function IsBrandingEnabled(custtoken)
{
	xmlHttp=GetXmlHttpObject();
	try
	{
		if (xmlHttp==null)
		{
			alert("Your browser not support AJAX");
		}
		else
		{
			var url = "http://www.phonon.in/C4C/Images/"+custtoken+".png";
			xmlHttp.onreadystatechange=function()
			{
				if (xmlHttp.status == 200)
				{
					brandingStatus = 1;
				}
				else
				{
					brandingStatus = 0;
				}
			  
				xmlHttp = null;
			}
			xmlHttp.open("GET",url,false);
			xmlHttp.send(null);
		}
	}
	catch(e)
	{
		brandingStatus = 0;
	}
}
function brandingResponse()
{
	if (xmlHttp.status != 200 )
	{
		alert("code : "+xmlHttp.status);
		brandingStatus = 0 ;
	}
	else
	{
		brandingStatus = 1 ;
	}
  
	xmlHttp = null;
}
function retriveCurrCallStatus(){
if(localvariable>12)
return;
localvariable++;
if (uniqueid != null || custtoken != null || uniqueid != '' || custtoken != ''){
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null){
alert("Your browser not support AJAX");
return;
}
else{}
var url="http://"+domainName+"/C4CWidgetNew/RetrieveStatus";
url=url+"?reqID="+requestID;		
xmlHttp.onreadystatechange=iresponse
xmlHttp.open("GET",url,true)
xmlHttp.send(null);}
}
function iresponse(){
if (xmlHttp.readyState==4){
responseStatus = xmlHttp.responseText;
xmlHttp = null;
retriveCallAcknowledge();}
}
function performCrossDomainAction(visitor_No, cust_Token, source_IP, udfParaList, referrer, country, sessionID, rcChallange, rcResponse, captchaAnswer){
visitorNo = visitor_No;
custtoken = cust_Token;
sourceIP  = source_IP;
xmlHttp = GetXmlHttpObject();
if (xmlHttp==null){
alert("Your browser not support AJAX");
return;
}
else{}
var url="http://"+domainName+"/C4CWidgetNew/C2CRequest";
url=url+"?visitor="+visitorNo+"&custtoken="+custtoken+"&sourceIP="+sourceIP+"&"+udfParaList+"&referrer="+referrer+"&visitorLocation="+country+"&sessionID="+sessionID+"&challenge="+rcChallange+"&response="+rcResponse+"&captcha="+captchaAnswer;
xmlHttp.onreadystatechange=CrossDomainStatusResponse
xmlHttp.open("GET",url,true)
xmlHttp.send(null);
}
function retryCaptcha(captchaAnswer){
document.getElementById('div_response').innerHTML = CALLING_VIS;
document.getElementById('imgLoading').style.visibility = "visible";
xmlHttp = GetXmlHttpObject();
if (xmlHttp==null){
alert("Your browser not support AJAX");
return;
}
else{}
var url="http://"+domainName+"/C4CWidgetNew/C2CRequest";
//var url="http://localhost:8080/C4CWidgetNew/C2CRequest";
url=url+"?IsRetry=T&captcha="+captchaAnswer;
xmlHttp.onreadystatechange=CrossDomainStatusResponse
xmlHttp.open("GET",url,true)
xmlHttp.send(null);
}
function CrossDomainStatusResponse()
{
	if (xmlHttp.readyState==4)
	{
		callResponse = xmlHttp.responseText;
		xmlHttp = null;
		if(callResponse.indexOf('NACK') >= 0)
		{
			if(callResponse.indexOf('Session Timeout') >= 0)
			{
				msg = "Your session timed out. Please try again after closing this window."
			}
			else if(callResponse.indexOf('Captcha Not Verified') >= 0 || callResponse.indexOf('Captcha Spam Blocked') >= 0)
			{
				var anchorRetry =  "<br><img src='CaptchaServlet'><br><span id='captchamsg' style='color:red'>Please enter the characters shown in above image.</span><br><input type='text' name='textCaptcha' id='textCaptcha'><br><input type='button' value='Retry' id='btnRetry' style='background-color:#EF9A48;'>";
				
				msg = CAPTCHA_INVALID + anchorRetry;
				document.getElementById('div_response').innerHTML = msg;
				document.getElementById("imgLoading").style.visibility = "hidden";
				var anchorRetry = document.getElementById("btnRetry");
				anchorRetry.onclick = function()
				{
					var captchaAnswer = document.getElementById("textCaptcha").value;
					if(captchaAnswer != null || captchaAnswer != "")
					{
						retryCaptcha(captchaAnswer);
					}
					else
					{
						alert("Please enter Captcha text first.");
					}
				}
			}
			else if(callResponse.indexOf('Captcha Retry Exceeded') >= 0)
			{
				msg = MAX_TRY;
				document.getElementById('div_response').innerHTML = msg;
				document.getElementById("imgLoading").style.visibility = "hidden";
			}
			else if(callResponse.indexOf('IP Blacklisted') >= 0)
			{
				var anchorIP =  "<br><a href='#' id='anchUnblockIP'>Request Unblock</a>";
				
				msg = IP_BLACKLISTED + anchorIP ;
				document.getElementById('div_response').innerHTML = msg;
				document.getElementById("imgLoading").style.visibility = "hidden";
				var anchIP = document.getElementById("anchUnblockIP");
				anchIP.onclick = function()
				{
					addRequestToUnblock(custtoken,sourceIP,true);
				}
			}
			else if(callResponse.indexOf('Number Blacklisted') >= 0)
			{
				var anchorNo =  '<br><a href="#" id="anchUnblockNo">Request Unblock</a>';

				msg = NUMBER_BLACKLISTED + anchorIP ;
				document.getElementById('div_response').innerHTML = msg;
				document.getElementById("imgLoading").style.visibility = "hidden";
				var anchNo = document.getElementById("anchUnblockNo");
				anchNo.onclick = function()
				{
					addRequestToUnblock(custtoken,visitorNo,false);
				}
			}
			else
			{
				msg = TRY_AGAIN;
				document.getElementById('div_response').innerHTML = msg;
				document.getElementById("anchRetry").style.visibility = "hidden";
			}
		}
		else if(callResponse.indexOf('ACK') >= 0)
		{
			var index = callResponse.length-20;
			var reqID = callResponse.substring(index);
			getCurrCallStatus(reqID);
		}
	}
}
function GetXmlHttpObject(){
var xmlHttp=null;
try{
xmlHttp = new XMLHttpRequest();
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}}
return xmlHttp;
}

function updateCurrCallStatus(){
var arrValue=responseStatus.split(';');
for (var i=0 ; i<arrValue.length ; i++){
if(i == arrValue.length-1 && arrValue[i].substr(arrValue[i].length-2, 1)!=':'){
arrValue[i] = arrValue[i].substr(arrValue[i].length-2, 2);
}
else{
arrValue[i] = arrValue[i].substr(arrValue[i].length-1, 1);}
}
var vis_status =  arrValue[1];
var adv_status =  arrValue[0];
var con =  arrValue[2];
var msg = '';
if ((vis_status == IDLE  || vis_status == TO_BE_CONNECTED || vis_status == NOT_CONNECTED) && (adv_status == TO_BE_CONNECTED)){
msg = CALLING_VIS;
}
else if ((vis_status == CONNECTED  || vis_status == SUCCESS) && (adv_status == TO_BE_CONNECTED)){
msg = CALLING_ADV;
}
else if ((vis_status == CONNECTED  || vis_status == SUCCESS) && (adv_status == CONNECTED || adv_status == SUCCESS)){
msg = VIS_ADV_CONNECTED;
}
else if ((vis_status == CONNECTED  || vis_status == SUCCESS) && (adv_status == BUSY)){
msg = ADV_CAN_NOT_CONTACTED;
}
else if ((vis_status == CONNECTED  || vis_status == SUCCESS) && (adv_status == NO_REPLY)){
msg = ADV_CAN_NOT_CONTACTED;
}
else if ((vis_status == CONNECTED  || vis_status == SUCCESS) && (adv_status == OTHER || adv_status == NOT_CONNECTED || adv_status == UNOBTAINABLE_NUMBER)){
msg = ADV_CAN_NOT_CONTACTED;
}
else if ((vis_status == CONNECTED  || vis_status == SUCCESS) && (adv_status == USER_HANGUP)){
msg = THANK_YOU;
}
else if ((vis_status == CONNECTED  || vis_status == SUCCESS) && (adv_status == INVALID_NUMBER_FORMAT)){
msg = INVALID_NO;
}
else if ((vis_status == BUSY) && (adv_status == TO_BE_CONNECTED)){
msg = VIS_CAN_NOT_CONTACTED;
}
else if ((vis_status == NO_REPLY) && (adv_status == TO_BE_CONNECTED)){
msg = VIS_CAN_NOT_CONTACTED;
}
else if ((vis_status == OTHER || vis_status == NOT_CONNECTED || vis_status == UNOBTAINABLE_NUMBER) && (adv_status == TO_BE_CONNECTED)){
msg = VIS_CAN_NOT_CONTACTED;
}
else if ((vis_status == USER_HANGUP)){
msg = THANK_YOU;
}
else if ((vis_status == INVALID_NUMBER_FORMAT) && (adv_status == TO_BE_CONNECTED)){
msg =  INVALID_NO + INVALID_NO_MSG;
}
document.getElementById('div_response').innerHTML = msg;
if(con != CONNECTION_ALIVE){
if(intervalId!=0)
clearInterval(intervalId);
document.getElementById("imgLoading").style.visibility = "hidden";}
}
function retriveCallAcknowledge(){
var ACK	 = "ACK";
var resp	= callResponse.substring(0,3);
if( resp == ACK ){
updateCurrCallStatus();
}	
else{
document.getElementById('imgLoading').style.visibility = "hidden";		
document.getElementById('div_response').innerHTML = SORRY;}
}
function includeCSS(){
var v_css  = document.createElement('link');
v_css.rel = 'stylesheet'
v_css.type = 'text/css';
v_css.href = "http://www.phonon.in/C4C/modal-message.css";
document.getElementsByTagName('head')[0].appendChild(v_css);
}

function addRequestToUnblock(cust_Token, source_IP_Number, isRequestForIp){
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp==null){
		alert("Your browser not support AJAX");
		return;
	}

	var url="http://"+domainName+"/C4CWidgetNew/setUnblockRequest";
	url+="?custtoken="+cust_Token+"&sourceIP_Number="+source_IP_Number;

	if (isRequestForIp)
		url+="&requestFor=1";
	else
		url+="&requestFor=2";

	xmlHttp.onreadystatechange=updateStatusOfRequest
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null);
}
function updateStatusOfRequest(){
	if (xmlHttp.readyState==4){
		var output = parseInt(xmlHttp.responseText);

		if (output >= 1)
			document.getElementById('div_response').innerHTML = 'Request Successfully Sent !!!';
		else if (output == 0)
			document.getElementById('div_response').innerHTML = 'Request Exist !!!';
		else if (output == -1)
			document.getElementById('div_response').innerHTML = 'Request Failure - DB Error !!!';
		else
			document.getElementById('div_response').innerHTML = 'Request Failure - Other Error !!!';
	}
}
function chkNumberBlacklist(cust_Token, source_IP_Number, hdnSourceIP ,hdnUDFParams ,referrerURL ,countryName, sessionID, rcChallange, rcResponse, captchaAnswer)
{
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp==null){
	alert("Your browser not support AJAX");
	return false;
	}

	var url="http://"+domainName+"/C4CWidgetNew/chkNumberBlacklist";
	url+="?custtoken="+cust_Token+"&sourceIP_Number="+source_IP_Number;

	xmlHttp.onreadystatechange = function(){
		if (xmlHttp.readyState==4)
		{
			var output = parseInt(xmlHttp.responseText);
			var anchor =  '<a href="#" id="anchUnblock">Request Unblock</a>';

			if (output == 1)
			{
				document.getElementById('div_response').innerHTML = 'This Number is not valid for Click4Call Services.'+anchor;
				document.getElementById("imgLoading").style.visibility = "hidden";

				var anch = document.getElementById("anchUnblock");
				anch.onclick = function(){
					addRequestToUnblock(cust_Token,source_IP_Number,false);
				}
			}
			else if (output == 0)
			{
				performCrossDomainAction(source_IP_Number, cust_Token , hdnSourceIP , hdnUDFParams, referrerURL , countryName, sessionID, rcChallange, rcResponse, captchaAnswer);
			}
			else
			{
				document.getElementById('div_response').innerHTML = 'Number Blacklist Exception';
				document.getElementById("imgLoading").style.visibility = "hidden";
			}
		}
	}
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null);
}