// **** COMMON VARIABLES ***** //
var xmlHttp;
var visitorNo;      // No of Visitor
var custtoken;      // Unique Customer Token
var sourceIP;       // Source Ip of Visitor
var intervalId=0;   // Unique Interval Id to kill continue Processiong
var uniqueid;       // Unique Id for Visitor
var callResponse;   // Status of Call Request
var responseStatus; // Status of Continue Call
var requestID;
var localvariable = 0;
var timeOut = -1;
var domainName = 'c4c.phonon.in';
//var domainName = 'localhost';
//******** CONSTANT CALL STATUS ********* //
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';
//******** CONSTANT MSGS ********* //
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.";
// **** Global Variables in JS Ends *****
// Default call to Modelmessage.css //
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()
    {
        /* Hiding divs */
        //this.divs_transparentDiv.style.display='none';
        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_transparentDiv.style.display='block';
        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()
    {
        // Creating content div
        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     = "300";
  var height    = "235";
  var titulo    = "Call Me Now. Free !!!";
   //var closeImagePath =  "http://" + domainName + "/C4CWidget/Images/close.gif";
   //var closeImagePath =  "http://" + domainName + "/C4CWidgetNew/Images/close.gif";
   //var tradeindiaImage =  "http://" + domainName + "/C4CWidgetNew/Images/tradeindia.png";
   var closeImagePath =  "http://www.phonon.in/C4C/Images/close.gif";
   var tradeindiaImage = "http://www.phonon.in/C4C/Images/tradeindia.png";
   var urlWithParameter = url+'?custtoken='+custtoken+'&udf1='+udf1+'&udf2='+udf2+'&udf3='+udf3+'&udf4='+udf4+'&udf5='+udf5;   
   //var messageTitle ='<table class="modalDialog_titleArea" width = "100%"><tr><td align="center" width="90%">' + titulo + '</td><td align="center" width="10%"><img src="'+closeImagePath+'" border="0" WIDTH="14" HEIGHT="14" onclick="closeMessage();return false"> </td><tr><table>'
   //var messageTitle ='<table class="modalDialog_titleArea" width = "100%"><tr><td align="center" width="90%">' + titulo + '</td><td align="center" width="10%"><img src="'+closeImagePath+'" border="0" WIDTH="14" HEIGHT="14" onclick="closeMessage();return false"> </td><tr><table>'
   var messageTitle ='<table class="modalDialog_titleArea" width = "100%"><tr><td align="center" width="90%"><img src="' + tradeindiaImage + '"/></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 - 55)+'" frameborder="0"></iframe>';     
   //var messageContent = '<iframe id="ifrmPopup" name="ifrmPopup" src="'+urlWithParameter+'"  class="frame" width="'+(width -20)+'" height="'+(height - 30)+'" frameborder="0" style="background-image:url(http://localhost:8084/C4CWidget/Images/FirstLoading1.gif); background-repeat:no-repeat;background-position:center" ></iframe>';
   //var messageContent = '';
   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 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+"?unique_id="+uniqueid+"&cust_token="+custtoken;
        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();
        
        //getCurrCallStatus()
    }
}
// Perform Cross Domain Call
function performCrossDomainAction(visitor_No, cust_Token, source_IP, udfParaList, referrer, country)
{   visitorNo = visitor_No;
    custtoken = cust_Token;
    sourceIP  = source_IP;
    //uniqueid  = getUniqueId();
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp==null)
    {
        alert("Your browser not support AJAX");
        return;
    }
    else
    {
        //alert("created xmlhhtp object");
    }
    //var url="CrossDomainCall";
    var url="http://"+domainName+"/C4CWidgetNew/C2CRequest";
    url=url+"?visitor="+visitorNo+"&custtoken="+custtoken+"&sourceIP="+sourceIP+"&"+udfParaList+"&referrer="+referrer+"&visitorLocation="+country;
    //alert(url);
    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)
        {
            //alert(callResponse);
            msg = "Unable to contact you. Please try again later."
            document.getElementById('div_response').innerHTML = msg;
            document.getElementById("imgLoading").style.visibility = "hidden";
        }
        else if(callResponse.indexOf('ACK') >= 0)
        {
            //msg = CALLING_VIS;
            //document.getElementById('div_response').innerHTML = msg;
            //document.getElementById("imgLoading").style.visibility = "hidden";
            var index = callResponse.length-20;
            //alert(index);
            var reqID = callResponse.substring(index);
            //alert(reqID);
            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)!=':')
        {
            //alert('with in Max length');
            arrValue[i] = arrValue[i].substr(arrValue[i].length-2, 2);
        }
        else
        {
            //alert('with in Default length');
            arrValue[i] = arrValue[i].substr(arrValue[i].length-1, 1);
        }
        //alert('Value ::  '+arrValue[i]);
    }
    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)
    {
        //alert("id " + intervalId);
        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://" + domainName + "/C4CWidgetNew/CSS/modal-message.css";
    v_css.href = "http://www.phonon.in/C4C/modal-message.css";
	document.getElementsByTagName('head')[0].appendChild(v_css);
}