var Awards_Open = false;

//Get userAgent
var AGENT_WI_NET = navigator.userAgent.toLowerCase(); var webserviceQueue = new Array(); var webservicePending = 0; var idTimeout = null;
function Wsjavascript_getXmlHttp()
{
 var xmlhttp;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")
} catch (e) {
try {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
} catch (E) {
xmlhttp=false
}
}
@else
xmlhttp=false
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined'){
try{
xmlhttp = new XMLHttpRequest();
}
catch (e){
xmlhttp=false;
}
}
return xmlhttp;
}

function Wsjavascript_getDomDocument (rootNodeName)
{
var oDoc = null;
/*@cc_on @*/
/*@if (@_jscript_version >= 5) {
var DOMDocumentPROGIDs = ["Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", "Microsoft.XMLDOM"];
var idx = 0;
while (oDoc == null && idx < DOMDocumentPROGIDs.length)
{
try {
oDoc = new ActiveXObject(DOMDocumentPROGIDs[idx++]);
} catch (ex) {}
}
}
@end @*/
try {
if (oDoc == null)
oDoc = document.implementation.createDocument("", sName, null);
} catch (ex) {}
// if a root tag name was provided, we need to load it in the DOM
if (oDoc && rootNodeName) oDoc.loadXML("<" + rootNodeName + "/>");
return oDoc;
}

function Wsjavascript_GetSoapParameters(paramsList)
{
var entete = new Array();
for (var i = 0; i < paramsList.length; i++)
{
var currentParam = paramsList[i];
var objType = typeof(currentParam.value);
switch(objType)
{
case "undefined" :
entete.push("<"); entete.push(currentParam.name); entete.push("></"); entete.push(currentParam.name); entete.push(">");
break;
case "string" :
case "number" :
case "boolean" :
if (paramsList[i].doNotEncode == true){
entete.push("<"); entete.push(currentParam.name); entete.push(">"); entete.push(currentParam.value); entete.push("</"); entete.push(currentParam.name); entete.push(">");
}
else{
entete.push("<"); entete.push(currentParam.name); entete.push(">"); entete.push(XMLEncode(currentParam.value));entete.push("</");entete.push(currentParam.name);entete.push(">");
}
break;
case "object" :
if (currentParam.value == null){
entete.push("<");entete.push(currentParam.name);entete.push("></");entete.push(currentParam.name);entete.push(">");
}
else if (currentParam.value instanceof Date){
entete.push("<");entete.push(currentParam.name);entete.push(">");entete.push(escape(currentParam.value.getTime()));entete.push("</");entete.push(currentParam.name);entete.push(">");
}
else if (currentParam.value instanceof Array){
entete.push("<");entete.push(currentParam.name);entete.push(">");
var className = "";
if (currentParam.value.length > 0){
if (typeof(currentParam.value[0].getClass) == "function") className = currentParam.value[0].getClass();
}
for (var j = 0; j < currentParam.value.length; j++) {
var subParam = currentParam.value[j];
var type = typeof(subParam);
if (type == "number") type = "int";
else if (className != "") type = "obj";
switch(type) {
case "obj" :
var subArray = new Array();
subArray.push(new WSParams(className, subParam, currentParam.doNotEncode));
entete.push(Wsjavascript_GetSoapParameters(subArray));
break;
case "string" :
case "int" :
case "boolean" :
if (currentParam.doNotEncode == true){
entete.push("<");entete.push(type);entete.push(">");entete.push(subParam);entete.push("</");entete.push(type);entete.push(">");
}
else{
entete.push("<");entete.push(type);entete.push(">");entete.push(XMLEncode(subParam));entete.push("</");entete.push(type);entete.push(">");
}
break;
default :
break;
}
}
entete.push("</");entete.push(currentParam.name);entete.push(">");
}
else{
entete.push("<");entete.push(currentParam.name);entete.push(">");
var subArray = new Array();
for (var n in currentParam.value){
if (n == "getClass") continue;
var subParam = new WSParams(n, currentParam.value[n], currentParam.doNotEncode);
subArray.push(subParam);
}
entete.push(Wsjavascript_GetSoapParameters(subArray));
entete.push("</");entete.push(currentParam.name);entete.push(">");
}
break;
case "function" :
break;
default :
throw new Exception("WsJavascriptException", "invalid object type found for serialization");
}
}
return entete.join("");
}

function Wsjavascript_CreateSoap(url, wsFunction, paramsList, uriName, guid){
var entete = new Array();
entete.push("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
entete.push("<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">");
entete.push("<soap:Body>");
entete.push("<");entete.push(wsFunction);entete.push(" xmlns=\"");entete.push(concatUrl( checkUrl(uriName), ""));entete.push("\">");
if (guid != null){entete.push("<");entete.push(guid.name);entete.push(">");entete.push(guid.value);entete.push("</");entete.push(guid.name);entete.push(">");}
if (paramsList != null) entete.push(Wsjavascript_GetSoapParameters(paramsList));
entete.push("</");entete.push(wsFunction);entete.push(">");entete.push("</soap:Body></soap:Envelope>");
return entete.join("");
}

function XmlRequest(url, fctHandler, wsFunction, paramsList, uriName, timeout, timeoutHandler){
if (url == ""){
alert("Error ws " + wsFunction);
return;
}
var xmlhttp = Wsjavascript_getXmlHttp();
if (typeof(fctHandler) == "undefined") fctHandler = null;
if (typeof(wsFunction) == "undefined") wsFunction = null;
if (typeof(paramsList) == "undefined") paramsList = null;
if (typeof(uriName) == "undefined") uriName = null;
if (typeof(timeout) == "undefined") timeout = 5; //5 secondes
if (typeof(timeoutHandler) == "undefined") timeoutHandler = null;
var wsObj = new WsObject(url, fctHandler, wsFunction, paramsList, uriName, timeout, timeoutHandler, 2, null);
if (webservicePending != 0) webserviceQueue.unshift(wsObj);
else{
xmlhttp.open("POST", url, true);
xmlhttp.onreadystatechange = function (e)
{
if (xmlhttp.readyState == 4){
WebserviceResponseXml(xmlhttp, fctHandler, timeoutHandler, wsFunction, uriName);
xmlhttp = null;
}
};
xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlhttp.setRequestHeader("User-Agent", "wsjavascript_xml_" + wsFunction);
xmlhttp.setRequestHeader("Content-Encoding", "utf-8");

var entete;
if (wsFunction != "none")
{
xmlhttp.setRequestHeader("SOAPAction" , concatUrl( checkUrl(uriName), wsFunction) );
entete = Wsjavascript_CreateSoap(url, wsFunction, paramsList, uriName);
}
else
entete = paramsList;
xmlhttp.send(entete);
if (timeout != 0){
idTimeout = setTimeout(function() {TestWebserviceTimeout(xmlhttp, wsFunction);}, timeout * 1000);
}
webservicePending++;
entete = null;
uriName = null;
}
}

function TestWebserviceTimeout(xmlhttp, wsFunction){
 idTimeout = null;
 if (xmlhttp.readyState == 1) xmlhttp.abort();
}

function WebserviceResponse(xmlhttp, fctHandler, errorHandler, wsFunction){
 if (idTimeout != null){
  clearTimeout(idTimeout);
  idTimeout = null;
 }
var xmlResponse = ( (xmlhttp.responseXML) && (xmlhttp.responseXML.childNodes.length > 0) );
var response = (xmlResponse) ? xmlhttp.responseXML.getElementsByTagName(wsFunction + "Response") : xmlhttp.responseText;
 if (xmlhttp.status != 200){
if (errorHandler != null){
errorHandler(xmlhttp.status, xmlhttp.statusText, xmlhttp.responseXML);
fctHandler(null);
}
else if (fctHandler != null)
fctHandler(null);
WsJavascript_CallNext();
return;
}
if (fctHandler != null){
if (xmlResponse){
if (response.length == 0)
fctHandler(null);
else{
response = response[0];
var array = Parse(response.childNodes, null);
fctHandler(array);
}
}
else
fctHandler(response);
}
WsJavascript_CallNext();
}

function WebserviceResponseXml(xmlhttp, fctHandler, errorHandler, wsFunction, uriName){
 if (idTimeout != null){
  clearTimeout(idTimeout);
  idTimeout = null;
 }
 if (xmlhttp.status != 200){
if (errorHandler != null)
errorHandler(xmlhttp.status, xmlhttp.statusText, xmlhttp.responseXML);
else if (fctHandler != null)
fctHandler(null);
WsJavascript_CallNext();
return;
}
var response = xmlhttp.responseXML.getElementsByTagName(wsFunction + "Result");
if (fctHandler != null){
if (response.length == 0)
fctHandler(null);
else{
response = response[0];
if (response.childNodes.length>1)
fctHandler(response.childNodes, response);
else
fctHandler(response.firstChild, response);
}
}
WsJavascript_CallNext();
}

function WsJavascript_CallNext(){
 webservicePending--;
 if (webserviceQueue.length > 0){
  var obj = webserviceQueue.pop();
XmlRequest(obj.url, obj.fctHandler, obj.wsFunction, obj.paramsList, obj.uriName, obj.timeout, obj.errorHandler, obj.stepHandler);
 }
}

function Parse(element, array){
for (var i = 0; i < element.length; i++){
if (element[i].childNodes.length > 1)
{
if (array != null)
array.push(Parse(element[i].childNodes, new Array()));
else
array = Parse(element[i].childNodes, new Array());
}
else if (element[i].childNodes.length > 0){
if (array == null) array = new Array();
if ((element[i].childNodes[0].childNodes.length > 0) && (element[i].childNodes[0].nodeValue == null))
array.push(Parse(element[i].childNodes[0].childNodes, new Array()));
else if (element[i].childNodes[0].nodeValue == null)
array.push(new Array());
else{
try {
value = decodeWS(element[i].childNodes[0].nodeValue);
 }
 catch(e){
value = element[i].childNodes[0].nodeValue;
 }
array.push(value);
 array[element[i].nodeName] = value;
}
}
else{
if (array != null)
array.push("");
}
}
return array;
}

function initParseXml(current, type) {
if ( !current ) return type=='array'?new Array():null;
current = current.nodeType?current.parentNode:current[0].parentNode;
return parseXml(current, type);
}

function parseXml(current, type) {
var firstChild = current.childNodes[0];
if ( current.childNodes.length==1
&& (firstChild.nodeType==3|| firstChild.nodeType==4)  ) {
return firstChild.nodeValue;
} else if ( type=='array'
|| ( current.childNodes.length>1 && firstChild.nodeName==firstChild.nextSibling.nodeName ) ) {
var obj = new Array();
var child = firstChild;
while ( child ) {
obj.push( parseXml(child) );
child = child.nextSibling;
}
return obj;
} else if ( type=='object' || current.childNodes.length>1 ) {
var obj = new Object();
var child = firstChild;
while ( child ) {
obj[child.nodeName] = parseXml(child);
child = child.nextSibling;
}
return obj;
} else if ( current.childNodes.length==1 ) {
var obj = new Array();
obj.push( parseXml(firstChild) );
obj[current.nodeName] = obj[0];
return obj;
}
}

function decodeWS(str){
str = decodeURI(str);
var reg = new RegExp("_/POURCENT/_", "gi");
str = str.replace(reg, "%");
return str;
}

function XMLEncode(str){
try{
str = str.replace(/\&/gi, "&amp;");
str = str.replace(/>/gi, "&gt;");
str = str.replace(/</gi, "&lt;");
}
catch(e) {}
return str;
}

function WSParams(name, value, doNotEncode){
 this.name = name;
 this.value = value;
 if ((typeof(doNotEncode) != "undefined") && (doNotEncode != null))
  this.doNotEncode = doNotEncode;
 else
  this.doNotEncode = false;
}

function ParameterObject(name, array){
this.name = name;
this.parameters = array;
}

function XMLExeption(message, errorCode){
this.Message = message;
this.code = errorCode;
}

function WsObject(url, fctHandler, wsFunction, paramsList, uriName, timeout, errorHandler, method, stepHandler){
 this.url = url;
 this.fctHandler = fctHandler;
 this.wsFunction = wsFunction;
 this.paramsList = paramsList;
 this.uriName = uriName;
 this.timeout = timeout;
 this.errorHandler = errorHandler;
 this.method = method;
 this.stepHandler = stepHandler;
 this.guidParam = null;
}

WsObject.prototype.setRequestGuid = function(param, val) {
 this.guidParam = new WSParams(param, val);
};

function defaultErrorHandler(statusCode, statusText, xmlError) {
var faultS = xmlError?xmlError.getElementsByTagName("faultstring")[0]:null;
var faultA = xmlError?xmlError.getElementsByTagName("faultactor")[0]:null;
if ( faultS!=null && faultA!=null )
alert('** Error **\n');
else if ( faultS!=null )
alert('** Error **\n');
else
alert('** Error **\n');
}

function checkUrl(urlName) {
if ( urlName.indexOf('http')==0 )
return urlName;
else
return 'http://'+urlName;
}

function concatUrl(url1, url2) {
if (url1.length==0)
return url2;
else if (url2.length==0)
return url1;
else if ( url1.charAt(url1.length-1)=='/' && url2.charAt(0)=='/' )
return url1+url2.substring(1);
else if ( url1.charAt(url1.length-1)=='/' || url2.charAt(0)=='/' )
return url1+url2;
else {
return url1+'/'+url2;
}
}


function BackEndWS(url) {
 if (url)
 this.url = url;
 else
  this.url = "BackEndWS.asmx";
this.ns = "http://tempuri.org/";
this.timeout = 10;
this.errorHandler = defaultErrorHandler;
}

BackEndWS.prototype =
{
GetNewsNumPage: function (lng, wsStubFctHandler, wsStubXml)
{
var wsStubParams = new Array(
new WSParams("lng", lng));
var wsStubFct = wsStubXml?wsStubFctHandler:function(r) {wsStubFctHandler(initParseXml(r));};
XmlRequest(this.url, wsStubFct, "GetNewsNumPage", wsStubParams, this.ns, this.timeout, this.errorHandler);
},
GetNews: function (lng, pageNumber, wsStubFctHandler, wsStubXml)
{
var wsStubParams = new Array(
new WSParams("lng", lng), 
new WSParams("pageNumber", pageNumber, true));
var wsStubFct = wsStubXml?wsStubFctHandler:function(r) {wsStubFctHandler(initParseXml(r, 'array'));};
XmlRequest(this.url, wsStubFct, "GetNews", wsStubParams, this.ns, this.timeout, this.errorHandler);
},
GetPhotos: function (lng, wsStubFctHandler, wsStubXml)
{
var wsStubParams = new Array(
new WSParams("lng", lng));
var wsStubFct = wsStubXml?wsStubFctHandler:function(r) {wsStubFctHandler(initParseXml(r, 'array'));};
XmlRequest(this.url, wsStubFct, "GetPhotos", wsStubParams, this.ns, this.timeout, this.errorHandler);
},
GetContactsInfos: function (lng, startIndex, length, wsStubFctHandler, wsStubXml)
{
var wsStubParams = new Array(
new WSParams("lng", lng), 
new WSParams("startIndex", startIndex, true), 
new WSParams("length", length, true));
var wsStubFct = wsStubXml?wsStubFctHandler:function(r) {wsStubFctHandler(initParseXml(r, 'array'));};
XmlRequest(this.url, wsStubFct, "GetContactsInfos", wsStubParams, this.ns, this.timeout, this.errorHandler);
},
getEvents: function (lng, wsStubFctHandler, wsStubXml)
{
var wsStubParams = new Array(
new WSParams("lng", lng));
var wsStubFct = wsStubXml?wsStubFctHandler:function(r) {wsStubFctHandler(initParseXml(r));};
XmlRequest(this.url, wsStubFct, "getEvents", wsStubParams, this.ns, this.timeout, this.errorHandler);
},
GetExtentedContactsInfos: function (lng, countryCode, wsStubFctHandler, wsStubXml)
{
var wsStubParams = new Array(
new WSParams("lng", lng), 
new WSParams("countryCode", countryCode));
var wsStubFct = wsStubXml?wsStubFctHandler:function(r) {wsStubFctHandler(initParseXml(r));};
XmlRequest(this.url, wsStubFct, "GetExtentedContactsInfos", wsStubParams, this.ns, this.timeout, this.errorHandler);
}
}

var _se = "/HANDLER/Site_Exchange.asmx";
var _ns = "http://www.vocalcom/SITE_2007/Site_Exchange";
function Post_Contact() {

   var Name_Information = document.getElementById("Name").value;

var wsStubParams = new Array(
	new WSParams("Name", Name_Information), 
	new WSParams("Company", document.getElementById("Company").value), 
	new WSParams("Email", document.getElementById("Email").value), 
	new WSParams("Phone", document.getElementById("Phone").value), 
	new WSParams("Country", document.getElementById("Country").value), 
	new WSParams("Message", document.getElementById("Message").value), 
	new WSParams("Url_Referrer", Url_Referrer),
	new WSParams("Location", document.location.href));

var wsStubFct = function(r) {Result_Post_Contact(initParseXml(r));};
XmlRequest(_se, wsStubFct, "Post_Contact", wsStubParams, _ns, 200, Result_Post_Contact);

document.getElementById("Send_Request_Contact").style.display = "none";
var div= document.getElementById("TxtSendContact");
if (!div)
{
div = document.createElement("div"); 
div.style.position = "absolute"; div.className = "TxtSendContact";
div.id = "TxtSendContact"; div.style.width = 210; div.style.height = "60px";
div.style.left = FindLeftEdge(document.getElementById("Content_Table_Contact")) + 100; div.style.top = 500; div.style.zIndex = 12000;
document.body.appendChild(div);
}
else
{
div.innerHTML = "";
div.style.display = "";
div.style.left = FindLeftEdge(document.getElementById("Content_Table_Contact")) + 100;
}
CloseContactAnim(0);
}

var msg = "{Thank you for thinking of us.}Welcome to the Next Call Center Technology.}Vocalcom Group.(#We hope to help you soon...";

function Result_Post_Contact(res){


	//GOOGLE
var google_conversion_id = 1068279649;
var google_conversion_language = "fr";
var google_conversion_format = "1";
var google_conversion_color = "666666";
var google_conversion_label = "J69QCJ2wPhDhzrL9Aw";
var googleHandler = new Image();
googleHandler.src = "http://www.googleadservices.com/pagead/conversion/1068279649/?label=J69QCJ2wPhDhzrL9Aw&script=0";
}

function CloseContactAnim(index)
{
var txtDiv = document.getElementById("TxtSendContact");
if (index >= msg.length) 
{
	setTimeout(function() {txtDiv.style.display = "none";document.getElementById("Send_Request_Contact").style.display = "";Show_Moveable_Popup(false,'PopContact',After_Close_Contact);}, 2000);
}
else {
var c = msg.charAt(index);
if (c == "#") c = "<br>";
else if (c == "(")
{
c = ""; var sub = document.createElement("div"); sub.style.fontStyle = "italic"; txtDiv.appendChild(sub);
}
else if (c == "{")
{
c = ""; var sub = document.createElement("div"); sub.style.textAlign = "center"; txtDiv.appendChild(sub); sub.style.width = "100%";
}
else if (c == "}")
{
c= ""; var sub = document.createElement("div");txtDiv.appendChild(sub); sub.style.width = "100%";
}

txtDiv.lastChild.innerHTML += c;
index++;
setTimeout(function() { CloseContactAnim(index); }, 50);
}
}

function OnWsError(){}
function Save_Referrer(refer) {
var wsStubParams = new Array(new WSParams("Url_Referrer", XMLEncode(refer)));
XmlRequest(_se, null, "Save_Referrer", wsStubParams, _ns, 200, OnWsError);
}

function Check_Phone(v){
if (v!=""){
var reg_Phone = /^\d+$/;
if ( !v.match(reg_Phone) || v.length<8 ) return 2;
else return 1;
}
else return 0;
}

function Check_Mail(v){
if (v!=""){
var reg_Email = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
if (!v.match(reg_Email) ) return 2;
else return 1;
}
else return 0;
}


function Post_Ident() 
{

	if (document.getElementById("User").value=='') 
	{
		document.getElementById("User").style.border = "1px solid red";
		return;
	}

	if (document.getElementById("Password").value=='')
	{
		document.getElementById("Password").style.border = "1px solid red";
		return;
	}

	var wsStubParams = new Array(
				new WSParams("User", document.getElementById("User").value), 
				new WSParams("Password", document.getElementById("Password").value));

	var wsStubFct = function(r) {Result_Post_Ident(r);};
	XmlRequest(_se, wsStubFct, "Post_Ident", wsStubParams, _ns, 200, Result_Post_Ident);

}

var Id_Client = 0;

function Result_Post_Ident(res)
{
	if (res)
	{
		if (res.text.substr(0,5) =='ERROR' ) 
		{
			Alert('Sorry, but this action has been canceled... Please Try later');
			setTimeout('Open_Client(false);',300);
		}
		else if (res.text.substr(0,9) =='USER : KO' ) 
		{
			Alert('Sorry, your login / password is incorrect, please try again.');
		}
		else if (res.text.substr(0,13) == "USER : ADMIN ")
		{
			document.location.href = "/HANDLER/index.aspx?admin=" + res.text.substr(13); // + "&Culture=" + Culture;
		}
		else if (res.text.substr(0,7) =='USER : ' ) 
		{
			Id_Client = res.text.substr(0,8);
			setTimeout('Open_Client(false);',300);
			document.location.href = "Client_Area.aspx";
		}
	}
	else
	{
		setTimeout('Open_Client(false);',300);
	}
}
