//--------------------------------------------------------------------------------------------------------- Your Custom JS Functions Here -------
function VerifyCodeClientFunction(textValue) 
{
    var verifyCode = getCookie('VerifyCode');
    if(verifyCode == textValue)
        {return true;}
    else 
        {return false;}
}

function refreshVerifyCode(id)
{
    var img = document.getElementById(id);
    var oldSrc = img.src;
    var pattern = /(\&|\?)id=[^\&\?]*/ig;
    if(pattern.test(oldSrc))
    {
        var value = oldSrc.match(pattern);
        if(value.length > 0)
        {
            img.src = oldSrc.replace(value[0].split('=')[1], newGuid());
        }
    }
    else
    {
        img.src += (oldSrc.indexOf("?") == -1 ? "?" : "&") + "id=" + newGuid();
    }
}


function BaseParmeters()
{
    this.timeObject = null;
    this.timer = 500;
    this.sender = null;
    this.i=0;
    this.url;
    this.templatebox;
    this.templateContainer;
    this.oEvent;
    this.ajaxHttp;
    this.clientX=0;
    this.clientY=0;
}

function StopLoadHtml()
{
    clearTimeout(BaseParmeters.timeObject);
    var loadBox = document.getElementById("ctl00_UpdateProgress1");
    if(loadBox)
    {
       loadBox.style.display='none';
    }
    if(BaseParmeters.ajaxHttp)
        BaseParmeters.ajaxHttp.Abort();
}

function GetHtmlText(loadType, sender, templateContainer)
{
    BaseParmeters.sender = sender;
    StartLoadHTML(loadType);
}

function StartLoadHTML(loadType, sender, url)
{
    if(loadType != "profile2" && loadType != "addinionalInformation")
    {
        BaseParmeters.clientX = 0;
        BaseParmeters.clientY = 0;
        document.getElementById('templateBox').style.display="none";
    }
    if(url != null)
    {
        BaseParmeters.url = url;
    }
    if(sender != null)
    {
        BaseParmeters.sender = sender;
    }
    if(loadType == "profile")
        BaseParmeters.timeObject = setTimeout("GetProfileHtmlText()", BaseParmeters.timer);
    else if(loadType == "meeting")
        BaseParmeters.timeObject = setTimeout("GetMeetingHtmlText()", BaseParmeters.timer);
    else if(loadType == "card")
        BaseParmeters.timeObject = setTimeout("GetCardHtmlText()", BaseParmeters.timer);
    else if(loadType == "card2")
        BaseParmeters.timeObject = setTimeout("GetCard2HtmlText()", BaseParmeters.timer);
    else if(loadType == "profile2")
        BaseParmeters.timeObject = setTimeout("GetProfile2HtmlText()", BaseParmeters.timer);
    else if(loadType == "addinionalInformation")
        BaseParmeters.timeObject = setTimeout("GetInformationHtmlText()", BaseParmeters.timer);
     var loadBox = document.getElementById("ctl00_UpdateProgress1");
     if(loadBox)
     {
        var r = getAbsolutePos(BaseParmeters.sender);
        
        if(r.y)
        {
            document.getElementById("loadingBox").style.top = r.y + parseInt(30) + "px";
        }
        
        loadBox.style.display='';
     }
     
}

function GetServerToUrl(hiddenImage)
{
    var parent = BaseParmeters.sender.offsetParent;
    for(var i=0; i<parent.childNodes.length; i++)
    {
        var node = parent.childNodes[i];
        if(node.nodeType != "1")
            continue;
        if(hiddenImage != null && hiddenImage)
        {
            if(node.tagName.toLowerCase() == "img")
            {
                node.style.display = "none";
            }
        }
        for(var j=0; j<node.attributes.length; j++)
        {
            var attr = node.attributes[j];
            if(attr.nodeName == "type" && attr.nodeValue == "hidden")
            {
                return node.value;
            }
            
        }
    }
}

function GetProfileHtmlText()
{
    var url = GetServerToUrl();
    url += (url.indexOf("?") == -1 ? "?" : "&type=") + "profile";
    BaseParmeters.ajaxHttp = new IncholAJAX(url);
    BaseParmeters.ajaxHttp.RemoteServer(BaseParmeters.ajaxHttp);
    IncholAJAX.prototype.TemplateBox = document.getElementById('templateBox');
    IncholAJAX.prototype.TemplateContainer = document.getElementById('TemplateContainer');
    IncholAJAX.prototype.ProcessIncholOverride = ProcessIncholOverride;
}

function GetProfile2HtmlText()
{
    document.getElementById(BaseParmeters.templatebox).style.display="none";
    var url = BaseParmeters.url;
    url += (url.indexOf("?") == -1 ? "?" : "&type=") + "profile";
    BaseParmeters.ajaxHttp = new IncholAJAX(url);
    BaseParmeters.ajaxHttp.RemoteServer(BaseParmeters.ajaxHttp);
    IncholAJAX.prototype.TemplateBox = document.getElementById(BaseParmeters.templatebox);
    IncholAJAX.prototype.TemplateContainer = document.getElementById(BaseParmeters.templateContainer);
    IncholAJAX.prototype.ProcessIncholOverride = ProcessIncholOverride;
}

function GetInformationHtmlText()
{
    document.getElementById(BaseParmeters.templatebox).style.display="none";
    var url = BaseParmeters.url;
    url += (url.indexOf("?") == -1 ? "?" : "&type=") + "information";
    BaseParmeters.ajaxHttp = new IncholAJAX(url);
    BaseParmeters.ajaxHttp.RemoteServer(BaseParmeters.ajaxHttp);
    IncholAJAX.prototype.TemplateBox = document.getElementById(BaseParmeters.templatebox);
    IncholAJAX.prototype.TemplateContainer = document.getElementById(BaseParmeters.templateContainer);
    IncholAJAX.prototype.ProcessIncholOverride = ProcessIncholOverride;
}

function GetCardHtmlText()
{
    var url = GetServerToUrl();
    url += (url.indexOf("?") == -1 ? "?" : "&type=") + "card";
    BaseParmeters.ajaxHttp = new IncholAJAX(url);
    BaseParmeters.ajaxHttp.RemoteServer(BaseParmeters.ajaxHttp);
    IncholAJAX.prototype.TemplateBox = document.getElementById('templateBox');
    IncholAJAX.prototype.TemplateContainer = document.getElementById('TemplateContainer');
    IncholAJAX.prototype.ProcessIncholOverride = ProcessIncholOverride;
}

function GetCard2HtmlText()
{
    var url = BaseParmeters.url;
    url += (url.indexOf("?") == -1 ? "?" : "&type=") + "card";
    BaseParmeters.ajaxHttp = new IncholAJAX(url);
    BaseParmeters.ajaxHttp.RemoteServer(BaseParmeters.ajaxHttp);
    IncholAJAX.prototype.TemplateBox = document.getElementById('templateBox');
    IncholAJAX.prototype.TemplateContainer = document.getElementById('TemplateContainer');
    IncholAJAX.prototype.ProcessIncholOverride = ProcessIncholOverride;
}

function GetMeetingHtmlText()
{
    var url = BaseParmeters.url;
    url += (url.indexOf("?") == -1 ? "?" : "&type=") + "meeting";
    BaseParmeters.ajaxHttp = new IncholAJAX(url);
    BaseParmeters.ajaxHttp.RemoteServer(BaseParmeters.ajaxHttp);
    IncholAJAX.prototype.TemplateBox = document.getElementById('templateBox');
    IncholAJAX.prototype.TemplateContainer = document.getElementById('TemplateContainer');
    IncholAJAX.prototype.ProcessIncholOverride = ProcessIncholOverride;
}

function ProcessIncholOverride()
{
    var responseText = this.GetResponseText();
    this.TemplateContainer.innerHTML = responseText;
    this.TemplateBox.style.visibility="hidden";
    this.TemplateBox.style.display="";
    SetTemplateBoxPosition(BaseParmeters.sender, this.TemplateBox);
     var loadBox = document.getElementById("ctl00_UpdateProgress1");
     if(loadBox)
     {
        loadBox.style.display='none';
     }
    if(BaseParmeters.ajaxHttp && BaseParmeters.ajaxHttp.http.readyState != 0 && responseText != "")
        this.TemplateBox.style.visibility="visible";
    else
    {
        this.TemplateBox.style.display="none";
        this.TemplateBox.style.visibility="visible";
    }
}

var BaseParmeters = new BaseParmeters();

function CalCulateMaxLength(sender, maxlen)
{
    if(maxlen == null || maxlen == 0)
        maxlen = 250;
    if(sender.value.length > maxlen)
    {
        sender.value = sender.value.substr(0, maxlen);
    }
}

function SetTemplateBoxPosition(obj, templateBox)
{
    var top;
    var left;
    var deviation = 50;
    if(BaseParmeters.clientX == 0 && BaseParmeters.clientY == 0)
    {
        var r = getAbsolutePos(obj);
        top = r.y; left = r.x;
    }
    else
    {
        left = parseInt(BaseParmeters.clientX) + parseInt(document.documentElement.scrollLeft);
        top = parseInt(BaseParmeters.clientY) + parseInt(document.documentElement.scrollTop);
    }
    if(top && left)
    {
        var leftSpan = left + parseInt(templateBox.clientWidth) + deviation - parseInt(document.documentElement.clientWidth) - parseInt(document.documentElement.scrollLeft);
        var topSpan = top + parseInt(templateBox.clientHeight) + deviation  - parseInt(document.documentElement.clientHeight) - parseInt(document.documentElement.scrollTop);
        if(leftSpan > 0)
            left = left - leftSpan;
        if(topSpan > 0)
            top = top - topSpan;
        
//        if(parseInt(top) + templateBox.clientHeight > document.documentElement.clientHeight)
//        {
//            top = (document.documentElement.clientHeight - templateBox.clientHeight); 
//        }
//        if(parseInt(left) + templateBox.clientWidth > document.documentElement.clientWidth)
//        {
//            left = (document.documentElement.clientWidth - templateBox.clientWidth); 
//        }
        templateBox.style.top = top + "px";
        templateBox.style.left = left + "px";
    }
}

function getAbsolutePos(el)
{
 var SL = 0, ST = 0;
  var is_div = /^div$/i.test(el.tagName);
  if (is_div && el.scrollLeft)
   SL = el.scrollLeft;
  if (is_div && el.scrollTop)
    ST = el.scrollTop;
  var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
  if (el.offsetParent)
  {
     var tmp = this.getAbsolutePos(el.offsetParent);
     r.x += tmp.x;
     r.y += tmp.y;
  }
  return r;
}

function nav()
{
    var nav = document.getElementById("menu"); 
    var lis = nav.getElementsByTagName("li"); 
    var current_href = window.location.href;   
    for (var i=0;i<lis.length;i++)
    { 
        var links = lis[i].firstChild; 
        if(!links.attributes)
            continue;
        for(var j=0; j<links.attributes.length; j++)
        {
            var attr = links.attributes[j];
            if(attr.nodeName == "href")
            {
                if (current_href.toLowerCase().indexOf(attr.nodeValue.toLowerCase()) >=0 )
                { 
                    links.className="active";
                } 
                else
                {
                    links.className="";
                }
            }
        }
    }
}

function setProfileCookie(cookieName, value, columnName)
{
    var cookieValue = getCookie(cookieName);
    var newValue = columnName + '#' + replacementOfDangerousSymbols(value);
    if(cookieValue=='')
    {
        setCookie(cookieName,newValue,1);  
    }
    else
    {
        var cookies = cookieValue.split(',');
        cookieValue = "";
        var isExists = false;
        for(var i=0; i<cookies.length; i++)
        {
            if(cookies[i] == "") continue;
            if(cookieValue != "") cookieValue += ",";
            if(cookies[i].indexOf(columnName + '#') >=0)
            {
                cookieValue += newValue;
                isExists = true;
            }
            else
            {
                cookieValue += cookies[i];
            }
        }
        
        if(!isExists)
        {
            if(cookieValue != "") cookieValue += ",";
            cookieValue += newValue;
        }
        
        setCookie(cookieName,cookieValue,1); 
    }
}

function replacementOfDangerousSymbols(str){
var pattern = /\#/ig;
str =str.toString().replace(pattern, "__POUND__");
pattern = /\,/ig;
str = str.toString().replace(pattern, "__COMMA__");
return str;
}


function restoreSymbols(str){
var pattern = /\_\_POUND\_\_/ig;
str = str.toString().replace(pattern, "#");
pattern = /\_\_COMMA\_\_/ig;
str = str.toString().replace(pattern, ",");
return str;
}


