var isNS4 = 0;
var isIE4 = 0;
var isIEMAC = 0;
var isNew = 0;
var isIE5 =0;
var isNS5 = 0;
var docObj ;
var styleObj ;
var currObj;

setBrowserSensing();


function setBrowserSensing()
{

	if (document.getElementsByTagName)
		isNS5 = document.getElementsByTagName("*")? true : false;


	if (parseInt(navigator.appVersion.charAt(0)) >= 4) 
	{
	  isNS4 = (navigator.appName == "Netscape") ? true : false;
	  isIE4 = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;
	  if (isIE4)isNS5 = false;
	  
	  
	  if (isIE4) // check for ie5
	  {
		isIE5 = (navigator.appVersion.indexOf("MSIE 5") != -1) ? true : false;
		isIE5 = (navigator.appVersion.indexOf("MSIE 6") != -1) ? true : false;
		isIE5 = (navigator.appVersion.indexOf("MSIE 7") != -1) ? true : false;
	  }
	  
	  
	
	  if (isNS5) 
	  {
		isNS4 = false;
		isIE4 = false;
	  }
	}

				
	if (isNS4||isIE4||isNew) 
	{
		docObj = (isNS4) ? 'document' : 'document.all';
		styleObj = (isNS4) ? '' : '.style';
	}

	if (isNS5)
	{
		docObj = 'document';
		styleObj = '.style';
	}
	
	if ((!isNS4) && (navigator.platform == "MacPPC"))
		isIEMAC = true;
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

function replaceTextBlock(explorerBlock,navigatorBlock,inText) 
{
	if (isIE4)  
	{	
	    var block = eval(explorerBlock);
	    if (block)
			block.innerHTML=inText;
	}            
	else if(isNS4 && document.layers[navigatorBlock])
	{
	  document.layers[navigatorBlock].document.open();
	   document.layers[navigatorBlock].document.write(inText);
	   document.layers[navigatorBlock].document.close();
	}
	else if (isNS5)
	{
		replaceNS5HTML(explorerBlock,inText);	
	}
}

function replaceNS5HTML(sElement,html)
{

	var vElement = document.getElementById(sElement);	

	if (vElement)
	{
		while (vElement.hasChildNodes())
		{
			vElement.removeChild(vElement.lastChild);
		}
		var range = vElement.ownerDocument.createRange();
					
		range.setStartAfter(vElement);
				
		var docFrag = range.createContextualFragment(html);
		vElement.appendChild(docFrag);
	}
}


function getTextBlock(explorerBlock,navigatorBlock) 
{
	var inText="";
	if (isIE4)  
	{	
	    var block = eval(explorerBlock);
	    inText = block.innerHTML;
	}            
	else if(isNS4)
	{

	   document.layers[navigatorBlock].document.open();
	   
	document.layers[navigatorBlock].document.read(inText);

	   document.layers[navigatorBlock].document.close();

	} 
	else if (isNS5)
	{
		inText = document.getElementById(explorerBlock).innerHTML;
 
	}

	
	return inText;
}

function changeStyleRule(vElement,bShow)
{
	if (vElement != null)
	{
		if (bShow) 
		{
			vElement.style.visibility = "visible";	
			vElement.style.display = "block";	
			}
		else
		{
			vElement.style.visibility = "hidden";	
			vElement.style.display = "none";	
		}
	}

}
function changeVisibility(currObject,bShow)
{
	var dom;
	var vElement;

	if (isNS5)
	{
		var vElement = document.getElementById(currObject);	
		if (vElement && bShow) 
		{
			//vElement.style.visibility = "visible";	
			vElement.style.display = "";
		}
		else if(vElement)
		{
			//vElement.style.visibility = "hidden";	
			vElement.style.display = "none";	
    	}
	}
	else
	{
		if (eval(docObj +'.' +currObject))
		{
		    dom = eval(docObj + '.' + currObject + styleObj);

		    if (dom)
		    {
			    if (bShow) 
			    {
    			    dom.display = ""; //"block";	
				    }
			    else
			    {
    			    dom.display = "none";	
			    }
		    }
		}

	}			
}

function checkVisibility(objectID)
{
    var objectIsVisible = true;
	var dom;
	var vElement;

	if (isNS5)
	{
		var vElement = document.getElementById(objectID);	
		if (vElement) 
		{
		    if ("none" == vElement.style.display)
		        objectIsVisible = false;
		}
	}
	else
	{
		if (eval(docObj +'.' + objectID))
		{
		    dom = eval(docObj + '.' + objectID + styleObj);

		    if (dom)
		    {
		        if ("none" == dom.display)
		            objectIsVisible = false;
		    }
		}
	}
	return objectIsVisible;
}

var h="0123456789ABCDEF";
 var Fullrgb = '#000000';

 function gradient(string, startcolor, endcolor) 
 {
     var len = string.length;
     var color;
     var sReturnString = "";	
     var start_red = startcolor >> 16;
     var start_green = (startcolor & 0x00FF00) >> 8;
     var start_blue = startcolor & 0x0000FF;

     var end_red = endcolor >> 16;
     var end_green= (endcolor & 0x00FF00) >> 8;
     var end_blue = endcolor & 0x0000FF;

     var incRed = Math.floor((end_red - start_red) / len);
     var incGreen = Math.floor((end_green - start_green) / len);
     var incBlue = Math.floor((end_blue - start_blue) / len);


     for (var x=0; x < len; x++) 
     {
         if (start_red + incRed >= 0x00 && start_red + incRed <= 0xFF)
             start_red += incRed;
         if (start_green + incGreen >= 0x00 && start_green + incGreen <= 0xFF)
             start_green += incGreen;
         if (start_blue + incBlue >= 0x00 && start_blue + incBlue <= 0xFF)
             start_blue += incBlue;

         color = hex(merge(start_red, start_green, start_blue));

         color = Fullrgb.substring(0, 6 - color.length + 1) + color;

         sReturnString += "<font color = "+ color+ ">"+ string.charAt(x)+ "</font>";
     }
	return sReturnString;
 }

 function merge(r, g, b) {
     return (r << 16 | g << 8 | b);
 }

 function hex(c) {
     var temp = "";
     var hexStr = "";
     var remainder, i;

     for ( ; c != 0; c >>= 4) {
         remainder = c % 16;
         hexStr += h.charAt(remainder);
     }

     for (i=5 ; i >= 0; i--)
         temp += hexStr.charAt(i);

     return temp;
 }

function getElementsInDiv(divName,tagName)
{
    var textDiv = document.getElementById(divName);
    if (textDiv != null)
    {
        var tb = textDiv.getElementsByTagName(tagName);
        return tb;
    }
    else
        return null;
    
}

function iGotClicked(sender,showBlock)
{
    var myRule = " ";
    var isOk = false;
    
    
    if (sender.attributes["rule"] != null)
        myRule = sender.attributes["rule"].nodeValue;
    else if (sender.parentNode.attributes["rule"] != null)
        myRule = sender.parentNode.attributes["rule"].nodeValue;
    
    
    if (sender.type == "checkbox" && myRule.charAt(0) =="S")
    {
        isOk = sender.checked;
    }
    else
    {
        if (myRule == " ") // check the value
        {
            myRule =sender.value;
        }
        if (myRule.charAt(0) == "S")
            isOk = true;
    }    

    

    if (myRule.charAt(0)=="S" || !isOk)
    {
    
        if (isOk)
            changeVisibility(showBlock,true);
        else    
            changeVisibility(showBlock,false);
    }
}

function setStyleBackgroundImage(elementName, content)
{
    var oneElement = document.getElementById(elementName);
    if (oneElement)
    {
        var bkgImgTxt = "";
        if (content.length > 0)
            bkgImgTxt = "url(" + content + ")";
            
        oneElement.style.backgroundImage = bkgImgTxt;
        if (isIE4) // <!-- IE has refresh issues -->
        {
            oneElement.style.display = "none"; 
            oneElement.style.display = "block"; 
        }
    }
}

function getCookieValue(cookieName)
{
    var cookieValue = null;
    var nCookieSpot = document.cookie.indexOf(cookieName + "=");
    if (-1 != nCookieSpot)
    {
        var nCookieEnd = document.cookie.indexOf(';', nCookieSpot);
        var nEqualsSpot = document.cookie.indexOf('=', nCookieSpot);
        if (-1 != nEqualsSpot)
        {
            if (-1 == nCookieEnd)
                nCookieEnd = document.cookie.length;
                
            cookieValue = document.cookie.substring(nEqualsSpot + 1, nCookieEnd);
        }
    }
    return cookieValue;
}

function setCookie(c_name,value,expiredays)
{
    var exdate=new Date();exdate.setDate(exdate.getDate()+expiredays);
    document.cookie= c_name+ "=" + value + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function deleteCookie(c_name) {
    document.cookie = c_name +
    '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
}

function parseURL(url)
{

    var a = document.createElement('a');
    a.href = url;

    return {
        source: url,
        protocol: a.protocol.replace(':', ''),
        host: a.host,
        hostname: a.hostname,
        port: a.port,
        query: a.search,

        params: (function() {
            var ret = {},
                seg = a.search.replace(/^\?/, '').split('&'),

                len = seg.length, i = 0, s;

            for (; i < len; i++) {
                if (!seg[i]) { continue; }

                s = seg[i].split('=');
                ret[s[0]] = s[1];

            }
            return ret;
        })(),
        file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1],

        hash: a.hash.replace('#', ''),
        path: a.pathname.replace(/^([^\/])/, '/$1'),

        relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ''])[1],

        segments: a.pathname.replace(/^\//, '').split('/')
    };

}

