﻿function $(id)
{
    return document.getElementById(id);
}


function StringBuilder(initialValue)
{
    this.buffer         = new Array();
    this.bufferLength   = 0;
    
    if(initialValue != null)
        this.append(initialValue);
}

StringBuilder.prototype.append =  function (appendValue)
{
    // ** validate data
    if(appendValue == null)
    {
        return;
    }
    
    // ** Increase the internal bufferlength
    this.bufferLength += appendValue.length;
    
    // ** And add the new value to the array.
    this.buffer.push(appendValue)
}

StringBuilder.prototype.clear =  function ()
{
    this.buffer = new Array();
    this.bufferLength = 0;
}

StringBuilder.prototype.length =  function ()
{
    return this.bufferLength;
}

StringBuilder.prototype.toString =  function ()
{
    return this.buffer.join("");
}


function windowOpen(handle, url, name) // width, height, left, top
{
    if (null == handle)
    {
        handle = new PopupHandle();
    }
    
    if (null == handle.ref || handle.ref.closed)
    {
        var size = (arguments[3] && arguments[4]) ? ',width=' + arguments[3] + ',height=' + arguments[4]: '' ;
        var position = (arguments[5] && arguments[6]) ? ',left=' + arguments[5] + ',top=' + arguments[6]: '' ;
        handle.ref = window.open(url, name, 'menubar=no,toolbar=no,location=no,resizable=yes,scrollbars=yes,status=yes' + size + position);
    }

    handle.ref.focus();
}

function getCookie(name) {
	var cname = name + "=";
	var dc = document.cookie;
	
	if (dc.length > 0) {
		begin = dc.indexOf(cname);
		if (begin != -1) {
			begin += cname.length;
			end = dc.indexOf(";", begin);
			if (end == -1) end = dc.length;
				return unescape(dc.substring(begin, end));
		}
	}
	return null;
}
//Set Cookie Function
function setCookie(name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value) + 
	((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
	((path == null) ? "" : "; path=" + path) +
	((domain == null) ? "" : "; domain=" + domain) +
	((secure == null) ? "" : "; secure");
}

function showHideHelpItem(pId){
    var p = document.getElementById(pId);
    
    if (!p.style.display || p.style.display == 'none') {
        p.style.display = 'block';
    } else {
        p.style.display = 'none';
    }
}


function tk_omov(what)
{
	what.src = what.src.substr(0,what.src.length-4)+"_over.jpg";
}

function tk_omou(what)
{
	what.src = what.src.substr(0,what.src.length-9)+".jpg";
}


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
        
        
var Url = {
    // public method for url encoding
    encode : function (string) {
        return escape(this._utf8_encode(string));
    },

    // public method for url decoding
    decode : function (string) {
        return this._utf8_decode(unescape(string));
    },

    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}