(function(){if(!window.cic){window['cic']={}}
function isCompatible(other){if(other===false||!Array.prototype.push||!Object.hasOwnProperty||!document.createElement||!document.getElementByTagName){return false;}
return true;};window['cic']['isCompatible']=isCompatible;function $(){var element=new Array();for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=='string'){element=document.getElementById(element);}
if(arguments.length==1){return element;}else{elements.push(element)}
return elements;}};window['cic']['$']=$;function addEvent(node,type,listener){if(node.addEventListener){node.addEventListener(type,listener,false);return true;}else if(node.attachEvent){node['e'+type+listener]=listener;node[type+listener]=function(){node['e'+type+listener](window.event);}
node.attachEvent('on'+type,node[type+listener]);return true;}
return false;};window['cic']['addEvent']=addEvent;function createElement(elementType,className,id){elementType=elementType||'div';var W3CElement=document.createElement(elementType)
if(className)W3CElement.className=className;if(id)W3CElement.setAttribute("id",id);return W3CElement;}
window['cic']['createElement']=createElement;function stopPropagation(eventObject){eventObject=eventObject||getEventObject(eventObject);if(eventObject.stopPropagation){eventObject.stopPropagation();}else{eventObject.cancelBubble=true;}}
window['cic']['stopPropagation']=stopPropagation;function createInputElement(type,name,value,className,id,state){elementType=type||'text';var W3CString='<input type = "'+type+'" ';if(name)W3CString+='name = "'+name+'" ';if(className)W3CString+='class = "'+className+'" ';if(id)W3CString+='id = "'+id+'" ';if(value)W3CString+='value = "'+value+'" ';if((elementType.toLowerCase()=='radio'||elementType.toLowerCase()=='checkbox')&&state)W3CString+='checked = "'+state+'" ';W3CString+='>'
return W3CString;}
window['cic']['createInputElement']=createInputElement;function createLabel(text,labelfor){var text=text||'empty string'
var label=document.createElement("label");if(labelfor)label.setAttribute("for",labelfor);if(text)label.appendChild(document.createTextNode(text));return label;}
window['cic']['createLabel']=createLabel;function removeEvent(node,type,listener){if(!(node=$(node))){return false;}
if(node.removeEventListener){node.removeEventListener(type,listener,false);return true;}else if(node.detachEvent){node.detachEvent('on'+type,node[type+listener]);return true;}
return false;};window['cic']['removeEvent']=removeEvent;function isEmail(string){var pattern=/^([a-zA-Z0-9_.+-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,6})+$/;return new Boolean(pattern.exec(string)).valueOf();}
window['cic']['isEmail']=isEmail;function getElementsByClassName(className,tag,parent){var classElements=new Array();if(parent==null);parent=document;if(tag==null)
tag='*';var els=parent.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp('(^|\\\\s)'+parent+'(\\\\s|$)');for(i=0,j=0;i<elsLen;i++){if(pattern.test(els[i].className)){classElements[j]=els[i];j++;}}
return classElements;};window['cic']['getElementsByClassName']=getElementsByClassName;function bind(object,method){return function(){return method.apply(object,arguments);};}
window['cic']['bind']=bind;function getPointerPosition(e){var W3CEvent=e||window.event;var x=W3CEvent.pageX||(W3CEvent.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));var y=W3CEvent.pageY||(W3CEvent.clientY+(document.documentElement.scrollTop||document.body.scrollTop));return{'x':x,'y':y}}
window['cic']['getPointerPosition']=getPointerPosition;function getElementPosition(W3CElement){var x=0;var y=0;while(W3CElement!=null){x+=W3CElement.offsetLeft||0;y+=W3CElement.offsetTop||0;W3CElement=W3CElement.offsetParent;if(W3CElement.style['position']=='relative'||W3CElement.tagName=='BODY')break;}
return{'x':x,'y':y};}
window['cic']['getElementPosition']=getElementPosition;function scrollTo(id){var element=$(id);var height=element.offsetHeight;var top=0;left=0;do{top+=element.offsetTop||0;left+=element.offsetLeft||0;element=element.offsetParent;}while(element);window.scrollTo(0,top-height);}
window['cic']['scrollTo']=scrollTo;function isIE(){return(navigator.appName.indexOf("Microsoft")!=-1);}
window['cic']['isIE']=isIE;function toggleDisplay(node,value){if(!(node=$(node))){return false;}
if(node.style.display!='none'){node.style.display='none';}else{node.style.display=value||'';}};window['cic']['toggleDisplay']=toggleDisplay;function insertAfter(node,referenceNode){if(!(node=$(node))){return false;}
if(!(referenceNode=$(referenceNode))){return false;}
return referenceNode.parentNode.insertBefore(node,referenceNode.nextSilbing);};window['cic']['insertAfter']=insertAfter;function removeChildren(parent){if(!(parent=$(parent))){return false;}
while(parent.firstChild){parent.firstChild.parentNode.removeChild(parent.firstChild);}
return parent;};window['cic']['removeChildren']=removeChildren;function prependChild(parent,newChild){if(!(parent=$(parent))){return false;}
if(!(newChild=$(newChild))){return false;}
if(parent.firstChild){parent.insertBefore(newChild,parent.firstChild);}else{parent.appendChild(newChild);}};window['cic']['prependChild']=prependChild;function parseJSON(s,filter){var j;function walk(k,v){var i;if(v&&typeof v==='object'){for(i in v){if(v.hasOwnProperty(i)){v[i]=walk(i,v[i]);}}}
return filter(k,v);}
if(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(s)){try{j=eval('('+s+')');}catch(e){throw new SyntaxError("parseJSON");}
if(typeof filter==='function'){j=walk('',j);}
return j;}};window['cic']['parseJSON']=parseJSON;function getRequestObject(url,options){var req=false;if(window.XMLHttpRequest){var req=new window.XMLHttpRequest();}else if(window.ActiveXObject){var req=new window.ActiveXObject('Microsoft.XMLHTTP');}
if(!req)return false;options=options||{};options.method=options.method||'GET';options.send=options.send||null;req.onreadystatechange=function(){switch(req.readyState){case 1:if(options.loadListener){options.loadListener.apply(req,arguments);}
break;case 2:if(options.loadedListener){options.loadedListener.apply(req,arguments);}
break;case 3:if(options.interactiveListener){options.interactiveListener.apply(req,arguments);}
break;case 4:try{if(req.status&&req.status==200){var contentType=req.getResponseHeader('Content-Type');var mimeType=contentType.match(/\s*([^;]+)\s*(;|$)/i)[1]
switch(mimeType){case'text/javascript':case'application/javascript':if(options.jsResponseListener){options.jsResponseListener.call(req,req.responseText);}break;case'application/json':if(options.jsonResponseListener){options.jsonResponseListener.call(req,req.responseText);}break;case'text/xml':case'application/xml':case'application/xhtml+xml':if(options.xmlResponseListener){options.xmlResponseListener.call(req,req.responseXML);}break;case'text/html':if(options.htmlResponseListener){options.htmlResponseListener.call(req,req.responseXML);}break;}
if(options.onComplete){options.onComplete.apply(req,arguments);}}else{if(options.errorListener){options.errorListener.apply(req,arguments)}}}catch(e){}
break;}};req.open(options.method,url,true);req.setRequestHeader('X-CIC-Ajax-Request','AjaxRequest');return req;}
window['cic']['getRequestObject']=getRequestObject;function ajaxRequest(url,options){var req=getRequestObject(url,options);req.send(options.send);}
window['cic']['ajaxRequest']=ajaxRequest;var XssHttpRequestCount=0;var XssHttpRequest=function(){this.requestID='XSS_HTTP_REQUEST_'+(++XssHttpRequestCount);}
XssHttpRequest.prototype={url:null,scriptObject:null,responseJSON:null,status:0,readyState:0,timeout:30000,onreadystatechange:function(){},setReadyState:function(newReadyState){if(this.readyState<newReadyState||newReadyState==0){this.readyState=newReadyState;this.onreadystatechange();}},open:function(url,timeout){this.timeout=timeout||30000;this.url=url
+((url.indexOf('?')!=-1)?'&':'?')
+'XSS_HTTP_REQUEST_CALLBACK='
+this.requestID
+'_CALLBACK';this.setReadyState(0);},send:function(){var requestObject=this;this.scriptObject=document.createElement('script');this.scriptObject.setAttribute('id',this.requestID);this.scriptObject.setAttribute('type','text/javascript');var timeoutWatcher=setTimeout(function(){window[requestObject.requestID+'_CALLBACK']=function(){};requestObject.scriptObject.parentNode.removeChild(requestObject.scriptObject);requestObject.status=2;requestObject.statusText='Timeout after'+requestObject.timeout+' milliseconds.';requestObject.setReadyState(2);requestObject.setReadyState(3);requestObject.setReadyState(4);},this.timeout);window[this.requestID+'_CALLBACK']=function(JSON){clearTimeout(timeoutWatcher);requestObject.setReadyState(2);requestObject.setReadyState(3);requestObject.responseJSON=JSON;requestObject.status=1;requestObject.statusText='Loaded';requestObject.setReadyState(4);}
this.setReadyState(1);this.scriptObject.setAttribute('src',this.url);var head=document.getElementsByTagName('head')[0];head.appendChild(this.scriptObject);}}
window['cic']['XssHttpRequest']=XssHttpRequest;function getXssRequestObject(url,options){var req=new XssHttpRequest();options=options||{};options.timeout=options.timeout||30000;req.onreadystatechange=function(){switch(req.readyState){case 1:if(options.loadlistener){options.loadListener.apply(req,arguments);}break;case 2:if(options.loadedListener){options.loadedListener.apply(req,arguments);}break;case 3:if(options.interactiveListener){options.interactiveListener.apply(req,arguments);}break;case 4:if(req.status==1){if(options.onComplete){options.onComplete.apply(req,arguments);}}else{if(options.errorListener){options.errorListener.apply(req,arguments);}}
break;}};req.open(url,options.timeout);return req;}
window['cic']['getXssRequestObject']=getXssRequestObject;function xssRequest(url,options){var req=getXssRequestObject(url,options);return req.send(null);}
window['cic']['xssRequest']=xssRequest;function prventDefault(e){if(cic.isIE)
e.returnValue=false;else
e.preventDefault();}
window['cic']['preventDefault']=prventDefault;function targetElement(event){return(cic.isIE())?event.srcElement:event.target;}
window['cic']['targetElement']=targetElement;function getValue(node,isText){isText=isText||false;if(!node.type||!(node=$(node))){return false;}
type=node.type.toLowerCase()
if(type==="text")
return node.value;else if(type==="radio"){var group=document.getElementsByName(node.name);var value="";for(i=0;i<group.length;i++){if(group[i].checked)value=group[i].value;}
return value;}
else if(type==="checkbox"&&node.checked)
return node.value;else if(type==="select-one"&&!isText){return node.options[node.selectedIndex].value;}else if(type==="select-one"&&isText){return node.options[node.selectedIndex].text;}
else
return"";}
window['cic']['getValue']=getValue;function cumulativeOffset(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return{y:valueT,x:valueL}}
window['cic']['cumulativeOffset']=cumulativeOffset;function iframeHack(element){var offsetValues=cic.cumulativeOffset(element);var iFrame=document.getElementById("iframe_hack");iFrame.style.left=offsetValues.x+'px';iFrame.style.top=offsetValues.y+'px';iFrame.style.width=element.offsetWidth+'px';iFrame.style.height=element.offsetHeight+'px';iFrame.style.display='block';return iFrame}
window['cic']['iframeHack']=iframeHack;function delay(millis){var date=new Date();var curDate=null;do{curDate=new Date();}while(curDate-date<millis);}
window['cic']['delay']=delay;function getAge(date1, date2){var MS_PER_YEAR = 1000 * 60 * 60 * 24 * 365;	if(arguments.length == 0) {	throw('function cic.getAge() called with null arguments from ' + arguments.callee.caller.name);	}else if(arguments.length == 1) {var d1= date1.toDate();var d2 = new Date();} else {var d1= date1.toDate();	var d2= date2.toDate();	}var diff = d2.getTime() - d1.getTime();return (d1 > new Date()) ? -1 : Math.floor(diff / MS_PER_YEAR);}
window['cic']['getAge'] = getAge;})();
String.prototype.toDate = function() {
    var dateArray = this.split(".");
    return new Date(dateArray[2], dateArray[1] - 1, dateArray[0], 0, 0, 0);
}
