var GetWidth=function(){x=0;if (self.innerHeight){x=self.innerWidth;}else if(document.documentElement && document.documentElement.clientHeight){x=document.documentElement.clientWidth;}else if(document.body){x=document.body.clientWidth;}return x;}
var GetHeight=function(){y=0;if(self.innerHeight){y=self.innerHeight;}else if(document.documentElement && document.documentElement.clientHeight){y=document.documentElement.clientHeight;}else if(document.body){y=document.body.clientHeight;}return y;}
var open_popup=function(a){x=GetWidth();y=GetHeight();widthPopup =a.style.width.replace(/px/, '') || 900;heightPopup=a.style.height.replace(/px/, '') || 400;leftPopup=x/2-widthPopup/2;topPopup=(y-heightPopup)/2;mypopup=window.open(a.href+"&canvas=popup", a.className, 'left=' + leftPopup + ',top=' + topPopup + ',scrollbars=yes,resizable=yes,width=' + widthPopup + ',height=' + heightPopup );mypopup.focus();return false;}
/** Base64 encode / decode - http://www.webtoolkit.info/  **/
/** Events class / Taken From http://fn-js.info/snippets/addevent **/
var $=function(){var a=[];for(var i=0,b;b=arguments[i];i++){if(typeof(b)=='string'){b=document.getElementById(b);}if(arguments.length===1){return b;}a.push(b);}return a;};
var insertAfter=function(el,node){var p=node.parentNode;return(node.nextSibling)?p.insertBefore(el,node.nextSibling):p.appendChild(el);};
var removeNode=function(el){if(el&&el.parentNode){return el.parentNode.removeChild(el);}return false;};
var getNextElement=function(el){var node=null;if(el.nextSibling){node=el;do{node=node.nextSibling;}while(node.nodeType!==1&&node.nextSibling);}return node;};
var getPreviousElement=function(el){var node=null;if(el.previousSibling){node=el;do{node=node.previousSibling;}while(node.nodeType!==1&&node.previousSibling);}return node;};
var getFirstElement=function(el){var node=null;if(el.hasChildNodes()){node=el.firstChild;if(node.nodeType!==1){node=getNextElement(node);}}return node;};  
var getLastElement=function(el){var node=null;if(el.hasChildNodes()){node=el.lastChild;if(node.nodeType!==1){node=getPreviousElement(node);}}return node;};  
var getNodePos=function(el){var pos={'x':0,'y':0};if(el.offsetParent){do{pos.x+=el.offsetLeft;pos.y+=el.offsetTop;el=el.offsetParent;} while(el);}return pos;};
var getMousePos=function(e){var o=e||window.event;var pos={'x':0,'y':0};if(e.pageX||e.pageY){pos={'x':e.pageX,'y':e.pageY};}else if(e.clientX||e.clientY){pos={'x':e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,'y':e.clientY+document.body.scrollTop+document.documentElement.scrollTop};}return pos;};
var getKeyCode=function(e){var o=e||window.event;return o.keyCode;};
var dimension_detect=function(){var d={'viewW':0,'viewH':0,'docH':0,'docW':0,'left':0,'top':0};if(document.body.scrollHeight>document.body.offsetHeight){d.docW=document.body.scrollWidth;d.docH=document.body.scrollHeight;}else{d.docW=document.body.offsetWidth;d.docH=document.body.offsetHeight;}if(self.innerWidth){d.viewW=self.innerWidth;d.viewH=self.innerHeight;d.left=window.pageXOffset;d.top=window.pageYOffset;}else{var ie=(document.compatMode&&document.compatMode!='BackCompat')?document.documentElement:document.body;d.viewW=ie.clientWidth;d.viewH=ie.clientHeight;d.left=ie.scrollLeft;d.top=ie.scrollTop;}return d;};
var getCookie=function(a){for(var i=0,c=document.cookie.split(';'),j=c.length,t,b,v;i<j;i++){t=c[i].split('=');b=t[0].replace(/^\s+|\s+$/g,'');if(a===b){v=(t.length>1&&typeof t[1]==='string')?unescape(t[1].replace(/^\s+|\s+$/g,'')):'';break;}}return(v==='')?null:v;};
var is_adult=function(the_date){var is_valid=true;if(!/^(\d{4})-(\d{1,2})-(\d{1,2})$/.test(the_date)){is_valid=false;}else{var dd=the_date.split('-'),d={},today=new Date();d['year']=parseInt(dd[0],10)+18;d['month']=parseInt(dd[1],10)-1;d['day']=parseInt(dd[2],10);if(isNaN(d['year'])||d['year']>today.getFullYear()){is_valid=false;}else if(d['year']===today.getFullYear()){if(isNaN(d['month'])||d['month']>today.getMonth()){is_valid=false;}else if(d['month']===today.getMonth()){if(isNaN(d['day'])||d['day']>=today.getDate()){is_valid=false;}}}}return is_valid;};
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a){var b="";var c,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;a=Base64._utf8_encode(a);while(i<a.length){c=a.charCodeAt(i++);chr2=a.charCodeAt(i++);chr3=a.charCodeAt(i++);enc1=c>>2;enc2=((c&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64}else if(isNaN(chr3)){enc4=64}b=b+this._keyStr.charAt(enc1)+this._keyStr.charAt(enc2)+this._keyStr.charAt(enc3)+this._keyStr.charAt(enc4)}return b},decode:function(a){var b="";var c,chr2,chr3;var d,enc2,enc3,enc4;var i=0;a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<a.length){d=this._keyStr.indexOf(a.charAt(i++));enc2=this._keyStr.indexOf(a.charAt(i++));enc3=this._keyStr.indexOf(a.charAt(i++));enc4=this._keyStr.indexOf(a.charAt(i++));c=(d<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;b=b+String.fromCharCode(c);if(enc3!=64){b=b+String.fromCharCode(chr2)}if(enc4!=64){b=b+String.fromCharCode(chr3)}}b=Base64._utf8_decode(b);return b},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");var b="";for(var n=0;n<a.length;n++){var c=a.charCodeAt(n);if(c<128){b+=String.fromCharCode(c)}else if((c>127)&&(c<2048)){b+=String.fromCharCode((c>>6)|192);b+=String.fromCharCode((c&63)|128)}else{b+=String.fromCharCode((c>>12)|224);b+=String.fromCharCode(((c>>6)&63)|128);b+=String.fromCharCode((c&63)|128)}}return b},_utf8_decode:function(a){var b="";var i=0;var c=c1=c2=0;while(i<a.length){c=a.charCodeAt(i);if(c<128){b+=String.fromCharCode(c);i++}else if((c>191)&&(c<224)){c2=a.charCodeAt(i+1);b+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2}else{c2=a.charCodeAt(i+1);c3=a.charCodeAt(i+2);b+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3}}return b}};
var getEventTarget=function(e){var o=e||window.event;var el=o.target||o.srcElement;if(el.nodeType===3){el=el.parentNode;}return el;};
var Events=(function(){function addEventW3C(a,b,f){return a.addEventListener(b,f,false)}function removeEventW3C(a,b,f){a.removeEventListener(b,f,false)}function addEventIE(a,b,f){((a._evts=a._evts||[])[a._evts.length]=function(e){return f.call(a,e)})._w=f;return a.attachEvent('on'+b,a._evts[a._evts.length-1])}function removeEventIE(a,b,f){for(var c=a._evts||[],i=c.length;i--;){if(c[i]._w===f){a.detachEvent("on"+b,c.splice(i,1)[0])}}}function addEventLegacy(a,b,f){if(!a._evts){a._evts={}}if(!a._evts[b]){a._evts[b]=[]}a._evts[b].push(f);return true}function removeEventLegacy(a,b,f){for(var c=a._evts[b]||[],i=c.length;i--;){if(c[i]===f){c.splice(i,1)}}}return window.addEventListener?{addEvent:addEventW3C,removeEvent:removeEventW3C}:window.attachEvent?{addEvent:addEventIE,removeEvent:removeEventIE}:{addEvent:addEventLegacy,removeEvent:removeEventLegacy}})();
var stopEvent=function(e){if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}};
var getObjectType=function(){return Object.prototype.toString.call(arguments[0]).match(/^\[object\s(.*)\]$/)[1];};
var inArray=function(o, arr){for(var i = 0, j = arr.length; i<j; i+=1){if(arr[i]===o){return i;}}return -1;};
