//
// (C) K.Pijpstra 
// 

function QueryString(ADocument) {
  if(ADocument)	{
    if(ADocument.location)var s=new String(ADocument.location);
    else if(ADocument.URL)var s=new String(ADocument.URL);
    else var s=new String(document.URL);
  }
  else var s=new String(document.URL);

  s=URLDecrypt(s);
  
  return QueryPars(s);
}

function QueryPars(url){
  var s=new String(url);
  var i=s.indexOf("?");
  if(i>0)return s.substr(i+1,s.length);
  
  var i=s.indexOf("=");  
  if(i>0) return s;
  
  return "";
}

function QueryDocumentName(ADocument) {
  if(ADocument)	{
    if(ADocument.location)var s=new String(ADocument.location);
    else if(ADocument.URL)var s=new String(ADocument.URL);
    else var s=new String(ADocument);
  }
  else var s=new String(document.URL);
  

  var i=s.indexOf("?");
  if(i>0)return s.substr(0,i);
  
  var i=s.indexOf("=");  
  if(i>0) return "";
  
  var i=s.indexOf("&");  
  if(i>0) return "";
    
  return s;
}

function QueryDocumentDir(ADocument) {
  var d=(ADocument)?ADocument:document.URL;
  var i=d.lastIndexOf("/");
   if(i>0)d=d.substr(0,i+1);
  return d;
}

function QueryValue(q,KeyName) {
  var Query=(q==null)?QueryString(window.document):new String(q);
  
 
  A = Query.split("?");
  Query=A[A.length-1];
  A = Query.split("&");  
//  alert(A);
  for (var I=0; I < A.length; I++) {
    if(A[I].substr(0,KeyName.length+1).toLowerCase()==(KeyName.toLowerCase()+"=")){
      A=A[I].split("=");
      return A[1];
    }
  }
  return "";
}

function FixArray(a){
  var b=new Array();
  for(var i=0;i<a.length;i++)
    if((Trim(a[i])!="")&&(a[i]))b[b.length]=a[i];
  return b;  
}

function QueryReplace(Query,KeyName,Value) {
  var IsEr=false;

  
  var doc=new String(QueryDocumentName(Query));
  var pars=new String(QueryPars(Query));
  
  var a=pars.split("\&");  
  

  for(var i=0;i<a.length;i++){
  	
  	
    if(a[i].substr(0,KeyName.length+1).toLowerCase()==(KeyName.toLowerCase()+"=")){
    	 
      a[i]=KeyName+"="+Value;
      
      IsEr=true;
      break;
    }

  }
  if(!IsEr)a[a.length+1]=KeyName+"="+Value;
  a=FixArray(a);

  if(doc!="")doc+="?";
  
  return doc+a.join("&");
}


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


function URLEncrypt(url){
  var s=new String(url);
  var a=s.split("?");
  if(a.length==1)return s;
  
  h=new String(s);
	h=h.toUpperCase();
  if(h.indexOf("JAVASCRIPT:")>=0)return url;
  
  s="";
  for(var i=0;i<a[a.length-1].length;i++){
    var ch=a[a.length-1].charCodeAt(i);
       
    s+=String.fromCharCode((255-ch)^0xAA);
  }
//  alert(h.indexOf("JAVASCRIPT:")+" "+url+"\n\n"+s+"\n\n"+a[0]+"?:::"+escape(s));
  return a[0]+"?:::"+escape(s);  
  
}

function URLDecrypt(url){
  var s=new String(url);
  
  var a=s.split("?");
  if(a.length>1)s=a[a.length-1];

  
  if(s.substr(0,3)==":::"){
    h=unescape(s.substr(3,s.length-3));
    s="";
    for(var i=0;i<h.length;i++){
      var ch=h.charCodeAt(i);
      s+=String.fromCharCode(255-(ch^0xAA));
    }
  }  
  
  return (a.length>1)?a[0]+"?"+s:s;
}