
function CAUtil(){this.get=function(id){return document.getElementById(id);}
this.readCookie=function(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;}
this.createCookie=function createCookie(name,value,days){var r=new RegExp("((^|\\s{1})"+name+"=)");if(r.test(document.cookie))
return;this.setCookie(name,value,days);}
this.setCookie=function(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=/";}
this.qsValues={};var qs=location.search.substring(1,location.search.length);qs=qs.replace(/\+/g,' ');var args=qs.split('&');for(var i=0;i<args.length;i++){var pair=args[i].split('=');var name=decodeURIComponent(pair[0]);var value=(pair.length==2)?decodeURIComponent(pair[1]):name;this.qsValues[name]=value;}
this.GetQueryStringValue=function(key,default_){var val=this.qsValues[key];if(val!=null)
return val;return default_;}
this.QSContains=function(varname){var value=this.qsValues[varname];return(value!=null);}
this.UrlContains=function(pattern){var R=new RegExp(pattern);return R.test(document.location.href);}
this.SetSource=function(value)
{this.setCookie("CAUTIL.Src",value);}
this.GetSource=function(){return this.readCookie("CAUTIL.Src");}
this.FlagSourceByUrl=function(urlPattern,sourceValue,default_){var pat=new RegExp(urlPattern);if(pat.test(location.href)){this.SetSource(sourceValue);}
else if(default_){this.SetSource(default_);}}
this.FlagSourceByVar=function(varName,default_){if(this.QSContains(varName)){this.SetSource(this.GetQueryStringValue(varName,default_));}
else if(default_)
this.SetSource(default_);}
this.UpdateSourceField=function(id){var src=this.get(id);if(src==null)
return;src.value=this.GetSource();}
this.CreateHiddenElement=function(name,value,id)
{var hidden=document.createElement("input");hidden.setAttribute("type","hidden");hidden.setAttribute("name",name);hidden.setAttribute("value",value);if(id)
hidden.setAttribute("id",id);return hidden;}
this.SetStatsIDField=function(){var val=this.readCookie("CASTATS");if(val){var statsField=document.getElementById("CA-uid");if(!statsField)
{var form=document.getElementById("caForm");if(form)form.appendChild(this.CreateHiddenElement("CA-uid",val));}
else
{statsField.value=val;}}}
this.SwapTextByUrl=function(pattern,elementId,text){var r=new RegExp(pattern);if(r.test(document.location.href)){var target=this.get(elementId);target.innerHTML=text;}}
this.SwapTextBySource=function(source,elementId,text){if(this.GetSource()!=source)
return;var target=this.get(elementId);if(target==null)
return;target.innerHTML=text;}
this.SwapValueByUrl=function(pattern,elementId,val){var r=new RegExp(pattern);if(r.test(document.location.href)){var target=this.get(elementId);target.value=val;}}
this.SwapValueBySource=function(source,elementId,val){if(this.GetSource()!=source)
return;var target=this.get(elementId);if(target==null)
return;target.value=val;}}
var $util=new CAUtil();