/**
* Copyright ApnaPaisa Services Pvt Ltd
*
*/
var alc;
if(typeof(alc)=='undefined' || alc==null)
{
	alc = {};
	alc.smartads = new Array();

	alc.widgetId = 0;

	alc.getNextWidgetId = function()
	{
		return alc.widgetId++;
	};

	alc.isNull = function(param)
	{
		return (typeof(param) == 'undefined' || param==null);
	};

	alc.isNotNull = function(param)
	{
		return !(alc.isNull(param));
	};

	alc.trim = function(str)
	{
		if(alc.isNull(str) || str.length==0) {
			return "";
		}
		return str.replace(new RegExp('^[ ]+', 'g'), '').replace(new RegExp('[ ]+$', 'g'), '');
	};

	alc.getXMLHttpObject = function() {
		try {
			return new XMLHttpRequest();
		} catch (e) {
			var ielibs =['Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'];
			for(var i=0; i<ielibs.length; i++) {
				try {
					return new ActiveXObject(ielibs[i]);
				} catch (ex) {}
			}
		}
		alert('Your browser does not seem to support AJAX, or the functionality has been disabled');
		return null;
	};

	alc.isValidMobileNumber = function(mobile)
	{
		if(alc.isNull(mobile) || mobile.length< 6) {
			return false;
		}
		var i, ch;
		for(i=0; i<mobile.length; i++) {
			ch = mobile.charAt(i);
			if(ch < '0' || ch > '9') {
				return false;
			}
		}
		mobile = mobile.replace(new RegExp('^[0]+', 'g'), '');
		return mobile.length >= 9;
	};

	alc.writeSmartAdPage1Error = function(wid, error)
	{
		var elem = document.getElementById(alc.smartads[wid].statusDivId1);
		if(alc.isNotNull(elem)) {
			elem.innerHTML = error;
		}
	};

	alc.writeSmartAdPage2Error = function(wid, error)
	{
		var elem = document.getElementById(alc.smartads[wid].statusDivId2);
		if(alc.isNotNull(elem)) {
			elem.innerHTML = error;
		}
	};
	alc.writeSmartAdPage3 = function(wid, error)
	{
		var elem = document.getElementById(alc.smartads[wid].confstatus);
		if(alc.isNotNull(elem)) {
			elem.innerHTML = error;
		}
	};
	
	alc.GetStatus=function(wid)
	 {
		 var ajax=alc.getXMLHttpObject();
		 var URL='http://' + alc.smartads[wid].serverName + '/contactcenter/classes/channels/telephony/ccs_tis_enquiry.php?';
		 var URLwithParam=URL+'requestId='+alc.smartads[wid].ReqId+'&participant='+ alc.smartads[wid].participant;
		 URLwithParam+="&conference="+alc.smartads[wid].conference;
		 ajax.open('GET',URLwithParam,true);
		 ajax.onreadystatechange = function() 
		 {
			if(ajax.readyState == 4) 
			{
				if(ajax.status == 408) 
				{
				alc.writeSmartAdPage3(wid, 'Network timeout. Your app may have been processed. Try again.');
				} 
				else 
				{
					if(alc.smartads[wid].maxResponseCnt>600)
					{return;}else
					{alc.smartads[wid].maxResponseCnt++;}
						
					var responseText=ajax.responseText;
					if(alc.smartads[wid].conference=='Y')
					{
						if(responseText.indexOf('Ended')>=0)
							{
								alc.writeSmartAdPage3(wid,"Conference End.<br>Thank you for using our services.");
								return;
							}
						alc.writeSmartAdPage3(wid,responseText);
					}
					else
					{
						alc.writeSmartAdPage3(wid,alc.smartads[wid].GetResponseFor+": "+responseText);
						if(responseText.indexOf('Connected')>=0)
							{
								if(alc.smartads[wid].participant=='INITIATOR')
									{alc.smartads[wid].conference='Y';}
									else{
									setTimeout("alc.smartads["+wid+"].participant='INITIATOR'", 1000);
									alc.smartads[wid].GetResponseFor=alc.smartads[wid].mobile;
									alc.writeSmartAdPage3(wid,"Attempting call to "+alc.smartads[wid].mobile);
									}
							}
					}
				setTimeout("alc.GetStatus("+wid+")",1000);
				}
			}
		}
		ajax.send(null);
	};

	alc.PrepareConfEnqResq=function(wid)
	{
		var html = "<div align='center'><br>";
		html += "Online conference status:<br><br><div style='color: red;' id='" + alc.smartads[wid].confstatus + "'>";
		html +="</div>";
		var div = document.getElementById(alc.smartads[wid].rootDivId);
		div.innerHTML = html;
		var confstat=document.getElementById(alc.smartads[wid].confstatus);
		confstat.innerHTML=alc.smartads[wid].message;
		alc.smartads[wid].GetResponseFor=alc.smartads[wid].buyerName;
		alc.smartads[wid].maxResponseCnt=0;
		alc.GetStatus(wid);
	};
	alc.validateSmartAdApp = function(wid, btn)
	{
		btn.disabled = true;
		var code = alc.trim(document.getElementById(alc.smartads[wid].codeDivId).value);
		if(code.length==0) {
			alc.writeSmartAdPage2Error(wid, 'Please enter a valid code');
			btn.disabled = false;
			return false;
		}
		alc.writeSmartAdPage2Error(wid, 'Validating app...');
		var ajax = alc.getXMLHttpObject();
		var rand = (new Date()).getTime();
		ajax.open('GET', 'http://' + alc.smartads[wid].serverName + '/ajax/validateSmartConnectApp.html?' +
						 'leadId=' + alc.smartads[wid].leadId +
						 '&code=' + code +
						 '&random=' + rand
				, true);
		ajax.onreadystatechange = function() {
			if(ajax.readyState == 4) {
				if(ajax.status == 408) {
					alc.writeSmartAdPage2Error(wid, 'Network timeout. Your app may have been processed. Try again.');
				} else {
					var msg = ajax.responseText;
				var status =new Array();
                    status=msg.split('#');
					if(status[1]!=null)
					{
						alc.smartads[wid].ReqId=status[1];
						alc.smartads[wid].message="App validated,<br>Attempting Call to "+alc.smartads[wid].buyerName+"...";
						alc.smartads[wid].participant="RECEIVER";
						alc.smartads[wid].conference='N';
						alc.PrepareConfEnqResq(wid);
					}
					else
					{
					alc.writeSmartAdPage2Error(wid, status[0]);
					}
				}
				btn.disabled = false;
			}
		}
		ajax.send(null);
		btn.disabled = false;
		return true;
	};

	alc.writeSmartAdPage2 = function(wid)
	{
		var html = "<div align='center' style='background-color: #dedede; border: 0; height: 100%;'>";
		html += "To talk to " + alc.smartads[wid].buyerName + " now...<br/>";
		html += "<font style='font-style:8px;'>Enter 4 digit Code(sent to you by SMS)</font></br>";
		html += "<div style='color: red;' id='" + alc.smartads[wid].statusDivId2 + "'></div>";
		html += "<input type='text' size='5' maxsize='4' id='" + alc.smartads[wid].codeDivId + "'>&nbsp;";
		html += "<input type='button' value='Go' onclick='alc.validateSmartAdApp(" + wid + ", this);'><br/>";
		if(alc.isNotNull(alc.smartads[wid].smsKeyword)) {
			html += "Or ";
			html += "SMS " + alc.smartads[wid].smsKeyword + " to 57575656";
		}
		html += "</div>";
		var div = document.getElementById(alc.smartads[wid].rootDivId);
		div.innerHTML = html;
	};	

	alc.smartAdTalkNowClicked = function(wid, btn)
	{
		btn.disabled = true;
		var mobileElem = document.getElementById(alc.smartads[wid].mobileDivId);
		var mobileNum = alc.trim(mobileElem.value);
		if(mobileNum.length == 0) {
			alc.writeSmartAdPage1Error(wid, 'Please enter mobile number');
			btn.disabled = false;
			mobileElem.focus();
			return false;
		}
		if(!alc.isValidMobileNumber(mobileNum)) {
			alc.writeSmartAdPage1Error(wid, 'Please enter a valid mobile number');
			btn.disabled = false;
			mobileElem.focus();
			return false;
		}
		alc.writeSmartAdPage1Error(wid, 'Submitting information...');
		alc.smartads[wid].mobile=mobileNum;
		var ajax = alc.getXMLHttpObject();
		var rand = (new Date()).getTime();
		ajax.open('GET', 'http://' + alc.smartads[wid].serverName + '/ajax/logSmartConnectApp.html?' +
						 'productId=' + alc.smartads[wid].productId +
						 '&countryCode=91' + 
						 '&mobileNum=' + mobileNum +
						 '&orderId=' + alc.smartads[wid].orderId +
						 '&random=' + rand
				, true);
		ajax.onreadystatechange = function() {
			if(ajax.readyState == 4) {
				if(ajax.status == 200 && ajax.responseText.indexOf('SUCCESS')==0) {
					alc.smartads[wid].leadId = ajax.responseText.substr(ajax.responseText.indexOf(" ")+1);
					alc.writeSmartAdPage1Error(wid, '');
					alc.writeSmartAdPage2(wid);
					return true;
				} else if(ajax.status == 408) {
					alc.writeSmartAdPage2Error(wid, 'Network timeout. Your app may have been submitted. Try again.');
				} else {
					alc.writeSmartAdPage1Error(wid, ajax.responseText);
				}
				btn.disabled = false;
			}
		}
		ajax.send(null);
		return true;
	};

	alc.createSmartAd = function(config)
	{
		var wid = alc.getNextWidgetId();
		var rootDivId = 'alc_smartad_' + wid;
		alc.smartads[wid] = {};
		alc.smartads[wid].rootDivId = rootDivId;
		alc.smartads[wid].width = config.width;
		alc.smartads[wid].height = config.height;
		alc.smartads[wid].buyerName = config.buyerName;
		alc.smartads[wid].productId = config.productId;
		alc.smartads[wid].orderId = config.orderId;
		alc.smartads[wid].smsKeyword = config.smsKeyword;
		alc.smartads[wid].adHTML = config.adHTML;
		var serverName = config.serverName
		if(alc.isNull(serverName)) {
			serverName = "www.apnaloan.com";
		}
		alc.smartads[wid].serverName = serverName;
		alc.smartads[wid].statusDivId1 = rootDivId + '_status1';
		alc.smartads[wid].statusDivId2 = rootDivId + '_status2';
		alc.smartads[wid].confstatus = rootDivId + '_confstatus';
		alc.smartads[wid].mobileDivId = rootDivId + '_mobile';
		alc.smartads[wid].codeDivId = rootDivId + '_code';
		document.write("<div id='" + rootDivId + "' style='font-family:Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 9px; padding: 1px; width: " + config.width + "px; height: " + config.height + "px; border: 1px solid black;'>");
		document.write(alc.smartads[wid].adHTML + "<br/>");
		document.write("<div id='" + alc.smartads[wid].statusDivId1 + "' style='color: red'></div>");
		document.write("<div style='padding-top: 1px;'>Mobile: +91 <input type='text' id='" + alc.smartads[wid].mobileDivId + "' size='9' maxlength='10'>");
		document.write("<input type='button' value='Talk Now' onclick=\"alc.smartAdTalkNowClicked(" + wid + ", this);\"></div>");
		document.write("</div>");
		document.getElementById(alc.smartads[wid].mobileDivId).disabled = false;	
	};

	alc.showSmartConnectCampaign = function()
	{
		var defaultText = "Mobile Num";
		var wid = alc.getNextWidgetId();
		var boxId = alc.writeTextBox(wid, null, defaultText);
		document.write("&nbsp;<input type='submit' value='Talk Now' onclick=\"alc.logSmartConnectAppForMobile(" + productId + ",'" + boxId + "', this,'" + defaultText + "');\">");
	};
};
