﻿function GetApplicationPathFromUrl(url, subDirLevel)
{
    var i;
    var _url = url;
    var startIndex = _url.lenght;
    
    for(i = 0; i < subDirLevel; i++)
    {
        startIndex = _url.lastIndexOf("/", startIndex);
        _url = _url.substring(0, startIndex);
    }
    
    return _url;
}

function FindParentItemByTagName(searchObject, parentTagName)
{
    if ((searchObject != null) && (searchObject.tagName != null) &&
        (searchObject.tagName.toUpperCase() == parentTagName.toUpperCase()))
    {
        return searchObject;
    }
    else
    {
        var parentResult;
        parentResult = FindParentItemByTagName(searchObject.parentNode, parentTagName);
        if (parentResult != null)
        {
            return parentResult;
        }
    }    
    
    return null;
}

function FindChildItemByTagName(searchObject, childTagName)
{
    if ((searchObject.tagName != null) && (searchObject.tagName.toUpperCase() == childTagName.toUpperCase()))
    {
        return searchObject;
    }
    else
    {
        var i;
        for (i = 0; i < searchObject.childNodes.length; i++)
        {
            var result = FindChildItemByTagName(searchObject.childNodes[i], childTagName);
            if (result != null)
                return result;
  	    }
    }    
    
    return null;
}

function FindChildItemByClassName(searchObject, childClassName)
{
    if ((searchObject.className != null) && (searchObject.className.toUpperCase() == childClassName.toUpperCase()))
    {
        return searchObject;
    }
    else
    {
        var i;
        for (i = 0; i < searchObject.childNodes.length; i++)
        {
            var result = FindChildItemByClassName(searchObject.childNodes[i], childClassName);
            if (result != null)
                return result;
  	    }
    }    
    
    return null;
}

function inheritsPrototype(originalType, descendentType, overridenFunction)
{
    for (var inheritedFunction in originalType.prototype)
    {
        var thisFunction = inheritedFunction;
        if (overridenFunction.indexOf(inheritedFunction) > -1)
            thisFunction = 'base' + inheritedFunction;
  	    descendentType.prototype[thisFunction] =	originalType.prototype[inheritedFunction];
  	}
}

function GetXMLDOMObject(strObject)
{
    var objXMLDoc;
    
    if (window.ActiveXObject)
    {
      objXMLDoc = new ActiveXObject("Microsoft.XMLDOM");
      objXMLDoc.loadXML(strObject);
    }
    else if (document.implementation && document.implementation.createDocument)
    {
      var parser = new DOMParser();
      objXMLDoc = parser.parseFromString(strObject, "text/xml");
    }
    else
    {
      alert('Your browser cannot handle this script');
    }
    return objXMLDoc;
}

function StrArrayContains(strArray, strToFind)
{
    var i;
    for(i = 0; i < strArray.length; i ++)
    {
        if (strArray[i] == strToFind)
            return true;
    }
    
    return false;
}

function getNodeIndex(nodeCollection, srcElement)
{
    var i;
    
    for(i = 0; i < nodeCollection.length; i++)
    {
        if (nodeCollection[i] == srcElement)
            return i;
    }
    
    return -1;
}

function ChangeImageSrc(imgObject, newImageName)
{
    var lastImagePathIndex = imgObject.src.lastIndexOf('/') + 1;

    imgObject.src = imgObject.src.substring(0, lastImagePathIndex) + newImageName;
}

function Sleep(millis) 
{
    var date = new Date();
    var curDate = null;

    do { var curDate = new Date(); } 
    while(curDate-date < millis);
} 

function Get_Cookie(name) 
{ 
   var start = document.cookie.indexOf(name+"="); 
   var len = start+name.length+1; 
   if ((!start) && (name != document.cookie.substring(0,name.length))) return null; 
   if (start == -1) return null; 
   var end = document.cookie.indexOf(";",len); 
   if (end == -1) end = document.cookie.length; 
   return unescape(document.cookie.substring(len,end)); 
} 

function Set_Cookie(name,value,expires,path,domain,secure) 
{ 
    var cookieString = name + "=" +escape(value) + 
       ( (expires) ? ";expires=" + expires.toGMTString() : "") + 
       ( (path) ? ";path=" + path : "") + 
       ( (domain) ? ";domain=" + domain : "") + 
       ( (secure) ? ";secure" : ""); 
    document.cookie = cookieString; 
} 

function Set_Permanent_Cookie(name,value,path,domain,secure) 
{ 
    var today = new Date();
    var experisDay = new Date(today.getYear() + 60, today.getMonth(),today.getDay());
    Set_Cookie(name, value, experisDay, path, domain, secure);
} 