var _Q=new _qobj();function _qobj(){this.cookie=new _qcookie();this.url=new _qurl();this.visitor=new _qvisitor();this.script=new _qscript();this.text=new _qstring();this.validate=new _qvalidator();this.number=new _qnumber();this.func=new _qfunc()};function _qcookie(){this.set=function(a,b,c){if(c){var d=new Date();d.setTime(d.getTime()+(c*24*60*60*1000));var e="; expires="+d.toGMTString()}else{var e=""}document.cookie=a+"="+b+e+"; path=/"};this.get=function(a){var b=a+"=";var d=document.cookie.split(';');for(var i=0;i<d.length;i++){var c=d[i];while(c.charAt(0)==' '){c=c.substring(1,c.length)}if(c.indexOf(b)==0){return c.substring(b.length,c.length)}}return null};this.erase=function(a){var b=new Date();b.setTime(b.getTime()-1);document.cookie=a+="=; expires="+b.toGMTString()};this.exists=function(a){if(this.get(a)!=null){return true}else{return false}}};function _qurl(){this.get=function(){return document.location};this.params=function(){var a=[],hash;var b=window.location.href.slice(window.location.href.indexOf('?')+1).split('&');for(var i=0;i<b.length;i++){hash=b[i].split('=');a.push(hash[0]);a[hash[0]]=hash[1]}return a};this.param=function(a){var b=this.params();if(b[a]==null){return''}else{return b[a]}};this.domain=function(){return document.domain}};function _qvisitor(){this.cookie=new _qcookie();this.storage=new _qstorage();this.user_agent=function(){return navigator.userAgent};this.browser=function(){agent=this.user_agent();if(agent.match(/chrome/gi)){return"Chrome"}else if(agent.match(/safari/gi)){return"Safari"}else if(agent.match(/MSIE 6/gi)){return"IE6"}else if(agent.match(/MSIE 7/gi)){return"IE7"}else if(agent.match(/MSIE 8/gi)){return"IE8"}else if(agent.match(/firefox/gi)){return"Firefox"}else{return"Unknown"}};this.os=function(){return navigator.platform};this.uid=function(){var a=new _qcookie();var b=new _qstring();if(a.exists('_qvid')){return a.get('_qvid')}else{var c=b.createUUID();a.set('_qvid',c,300);return c}}};function _qstring(){this.encode=function(a){return _qBase64.encode(a)};this.decode=function(a){return _qBase64.decode(a)};this.contains=function(a,b,c){if(!c){a=a.toLowerCase();b=b.toLowerCase()}if(b.match(a)){return true}else{return false}};this.urlformat=function(a){a=a.replace(/[^a-zA-Z 0-9]+( )/g,'');a=a.replace(/( )/g,"-");a=a.toLowerCase();return a};this.asVariable=function(a){a=a.replace(/[^a-zA-Z 0-9]+( )/g,'');a=a.replace(/( )/g,"_");a=a.replace(/-/g,"_");a=a.toLowerCase();return a};this.trim=function(a){return a.replace(/^\s+|\s+$/g,"")};this.ltrim=function(a){return a.replace(/^\s+/,"")};this.rtrim=function(a){return a.replace(/\s+$/,"")};this.createUUID=function(){var s=[],itoh='0123456789ABCDEF';for(var i=0;i<36;i++)s[i]=Math.floor(Math.random()*0x10);s[14]=4;s[19]=(s[19]&0x3)|0x8;for(var i=0;i<36;i++)s[i]=itoh[s[i]];s[8]=s[13]=s[18]=s[23]='-';return s.join('')}};function _qscript(){this.load=function(a,b){var c=document.createElement("script");c.type="text/javascript";c.src=a;c.onload=b;c.onreadystatechange=function(){if(this.readyState=='complete'){b()}};document.getElementsByTagName('HEAD').item(0).appendChild(c)};this.remove=function(a){var b='js';var c=(b=="js")?"script":(b=="css")?"link":"none";var d=(b=="js")?"src":(b=="css")?"href":"none";var e=document.getElementsByTagName(c);for(var i=e.length;i>=0;i--){if(e[i]&&e[i].getAttribute(d)!=null&&e[i].getAttribute(d).indexOf(filename)!=-1){e[i].parentNode.removeChild(e[i])}}};this.load_jQuery=function(a){if(!a)a=null;this.load('http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js',a)};this.load_jQueryUI=function(a){if(!a)a=null;this.load('http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js',a)};this.load_prototype=function(a){if(!a)a=null;this.load('http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js',a)};this.load_mootools=function(a){if(!a)a=null;this.load('http://ajax.googleapis.com/ajax/libs/mootools/1.2.4/mootools-yui-compressed.js',a)};this.load_scriptaculous=function(a){if(!a)a=null;this.load('http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.3/scriptaculous.js',a)}};function _qvalidator(){this.email=function(a){return/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(a)};this.zipcode=function(a){return/(^\d{5}$)|(^\d{5}-\d{4}$)/.test(a)};this.phone=function(a){a=a.replace(/(\-| |\(|\))/gi,"");return/^(1\s*[-\/\.]?)?(\((\d{3})\)|(\d{3}))\s*[-\/\.]?\s*(\d{3})\s*[-\/\.]?\s*(\d{4})\s*(([xX]|[eE][xX][tT])\.?\s*(\d+))*$/.test(a)};this.human=function(){return confirm("Sorry to bother you, but I need to know if you are a human. Simply click ok to continue")}};function _qnumber(){this.comma=function(a){a+='';x=a.split('.');x1=x[0];x2=x.length>1?'.'+x[1]:'';var b=/(\d+)(\d{3})/;while(b.test(x1)){x1=x1.replace(b,'$1'+','+'$2')}return x1+x2};this.dollar=function(a){a=a.toString().replace(/\$|\,/g,'');if(isNaN(a))a="0";sign=(a==(a=Math.abs(a)));a=Math.floor(a*100+0.50000000001);cents=a%100;a=Math.floor(a/100).toString();if(cents<10)cents="0"+cents;for(var i=0;i<Math.floor((a.length-(1+i))/3);i++)a=a.substring(0,a.length-(4*i+3))+','+a.substring(a.length-(4*i+3));return(((sign)?'':'-')+'$'+a+'.'+cents)}};function _qstorage(){var d=new _qcookie();var e=new _qstring();this.set=function(a,b){b=b.toString();a=e.asVariable(a);var c=e.encode(b);d.set('_qdb_'+a,c,365)};this.get=function(a){a=e.asVariable(a);return e.decode(d.get('_qdb_'+a))};this.remove=function(a){a=e.asVariable(a);d.erase('_qdb_'+a)};this.show=function(){var a="<style>._Qdb_dump td { border-bottom:solid 1px #CCCCCC; } ._Qdb_dump th { background-color:#666666; color:#FFFFFF; text-align:left; } </style>";var b='<div id="_Q_db"><table class="datagrid _Qdb_dump" border="0" cellspacing="0" cellpadding="4" style="background-color:#F8F8F8; border:solid 1px #444444; font-family:Helvetica; font-size:11px;" align="" width="300"><tr><th>&nbsp;</th><th>Name</th><th>Value</th></tr>';var c=document.cookie.replace(/ /g,"").split(";");for(var i=0;i<c.length;i++){cookiePair=c[i].split("=");name=cookiePair[0];if(name.match(/_qdb_/)){name=name.replace('_qdb_','');b=b+'<tr style="background-color:#F8F8F8;" id="_qdb_'+i+'"><td><a href="#" onclick="_Q.visitor.storage.remove(\''+name+'\'); element = document.getElementById(\'_qdb_'+i+'\'); element.parentNode.removeChild(element); return false;">X</a></td><td>'+name+'</td><td>'+e.trim(e.decode(cookiePair[1]))+'</td></tr>'}};b=b+'<tr><td colspan="3"><a href="#" onclick="var new_name = prompt(\'Key\'); var new_value=prompt(\'Value\'); _Q.visitor.storage.set(new_name, new_value); var table_container = document.getElementById(\'_Q_db\'); table_container.innerHTML = (_Q.visitor.storage.show()); return false;">+Add</a></td></tr></table></div>';return a+b}};function _qfunc(){this.inject=function(a,b){window[a]=window[a].pushObserver(function(){b()})}}Function.prototype.pushObserver=function(b){var c={execute_method:true};if(arguments[1]&&arguments[1].execute_method!=undefined){c.execute_method=arguments[1].execute_method}var d=this;var e=function(){var a=b();if(c.execute_method){return d.apply(this,arguments)}else{return a}};e.__observed=this;return e};Function.prototype.popObserver=function(){return this.__observed||this};Function.prototype.unObserve=function(){var m=this;while(m.__observed){m=m.popObserver()};return m};JSON={encode:function(a){if(!a){return'null'}switch(a.constructor){case String:return'"'+a+'"';break;case Number:return a.toString();break;case Array:var b=[];for(i in a){b.push(JSON.encode(a[i]))}return'['+b.join(', ')+']';break;case Object:var b=[];for(k in a){b.push(k+' : '+JSON.encode(a[k]))}return'{ '+b.join(', ')+'} ';break;default:return'null';break}}};var _qBase64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a){var b="";var c,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;a=_qBase64._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=_qBase64._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}};