/**
 * doijs package
 * 
 * @author donna iwan setiawan
 * @version 1.1 release 6
 * copyright - (c) 2007 - 2010 donna iwan setiawan
 * license - GPL version 3 or any later version <http://www.gnu.org/licenses/gpl-3.0.txt>
 */
doi.dom=new function(){function a(d,c){return typeof d==c}function b(e,d){for(var c in d){if(doi.dom.isObject(d[c])){e[c]=e[c]||{};b(e[c],d[c])}else{e[c]=d[c]}}}return{$:function(e){var r,l=arguments[1]||false;if(this.isString(e)){if(/^#/.test(e)){e=e.replace(/^#/,"");return this.getElementById(e,l)}else{if(r=e.match(/^id\:(.*)/)){return this.getElementById(this.trim(r[1]),l)}else{if(/^\./.test(e)){e=e.replace(/^\./,"");return this.getElementsByClass(this.trim(e),l)}else{if(r=e.match(/^class\:(.*)/)){return this.getElementsByClass(this.trim(r[1]),l)}else{if(r=e.match(/^tag\:([a-z]+);?(.*)/i)){var c=this.getElementsByTagName(this.trim(r[1]),l);if(!c){return false}if(!r[2]){return c}var j=r[2].split(/;/);var g={};for(var o=0;o<j.length;o++){var f=j[o].split(/=/);var d=doi.dom.trim(f[0]);var p=doi.dom.trim(f[1]);if(d==""||p==""){continue}g[d]=p}var n=[];for(var h=0;h<c.length;h++){var q=true;for(var o in g){var m=c[h].getAttribute(o);if(m){var k=doi.regexp.RegExp(g[o]);if(!k.test(m)){q=false;break}}else{q=false}}if(q){n.push(c[h])}}if(n.length==0){return false}return n}else{if(r=e.match(/^name\:(.*)/)){return this.getElementsByName(this.trim(r[1]))}else{return this.getElementById(e,l)}}}}}}}else{if(e&&e.nodeType){return e}else{if(e&&(this.isObject(e)||this.isFunction(e))){return e}}}return false},addClass:function(f,e){if(!f){return}var d=[];if(this.isArray(f)){for(var c=0;c<f.length;c++){if(this.isElement(f[c])){d.push(f[c])}}}else{if(this.isElement(f)){d=[f]}}for(var c=0;c<d.length;c++){if(!this.hasClass(d[c],e)){d[c].className+=" "+e}}},addClassName:function(d,c){this.addClass(d,c)},className:function(f,e){if(!f){return}var d=[];if(this.isArray(f)){for(var c=0;c<f.length;c++){if(this.isElement(f[c])){d.push(f[c])}}}else{if(this.isElement(f)){d=[f]}}for(var c=0;c<d.length;c++){d[c].className=e}},clone:function(e){if(doi.dom.isElement(e)){var c=!!(arguments[1]);return e.cloneNode(c)}for(var d in e){this[d]=(doi.dom.isObject(e[d]))?new doi.dom.clone(e[d]):e[d]}},debug:function(d,g,e){var f="";if(!g&&g!=0){g=1}if(!e){e="object"}g=this.parseInt(g);if(this.isObject(d)&&g>0){for(var c in d){f+=this.debug(d[c],g-1,e+"."+c)}}else{f+=e+" = "+d+"\n"}return f},execScript:function(f){if(!f||(f&&this.isArray(f))){return}var g=doi.dom.getElementsByTagName("script",f);if(!g){return}var c=[];for(var e=0;e<g.length;e++){var d=document.createElement("script");d.type=g[e].type;if(g[e].src!=""){d.src=g[e].src}else{if(g[e].text!=""){d.text=g[e].text}}c.push(d)}for(var e=0;e<c.length;e++){f.appendChild(c[e])}},get:function(c){var d=arguments[1]||false;return this.$(c,d)},getElementsByClass:function(f,e){var g=[];var d=this.getElementsByTagName("*",e);if(d){for(var c=0;c<d.length;c++){if(this.hasClass(d[c],f)){g.push(d[c])}}}if(g.length!=0){return g}return false},getElementsByClassName:function(d,c){return this.getElementsByClass(d,c)},getElementById:function(e){var d=arguments[1]||false;var c;if(d&&d.getElementById){c=d.getElementById(e)}else{if(document.getElementById){c=document.getElementById(e)}else{if(document.all){c=document.all(e)}}}if(c){if(c.length){return c[0]}else{return c}}return false},getElementsByName:function(d){if(doi.browser.msie){var c=document.getElementsByTagName("*");var f=[];for(var e=0;e<c.length;e++){if((c[e].name&&c[e].name==d)||(c[e].getAttribute("name")==d)){f[f.length]=c[e]}}if(f.length!=0){return f}return false}else{if(document.getElementsByName){var f=document.getElementsByName(d);if(f.length!=0){return f}}}return false},getElementsByTagName:function(d,e){if(!e){e=document}if(e&&e.getElementsByTagName){var c=e.getElementsByTagName(d);if(c.length!=0){return c}}return false},getStyle:function(l,m){if(l){if(this.isArray(l)){return false}}else{return false}if(!m&&!m.split){return false}var e=m.split(";");var c={};for(var h=0;h<e.length;h++){if(!e[h].replace||e[h]==""){continue}var g=e[h].replace(/\-(\w{1})/g,function(){return arguments[1].toUpperCase()});if(l.currentStyle){c[e[h]]=l.currentStyle[g]}else{if(window.getComputedStyle){if(window.getComputedStyle(l,null)){c[e[h]]=window.getComputedStyle(l,null).getPropertyValue(e[h])}else{c[e[h]]=null}}}}var f=0;for(var d in c){f++}if(f<=0){return false}else{if(f==1){return c[e[0]]}else{return c}}return false},hasClass:function(g,f){if(!g||(g&&!g.className)||!f){return false}var c=g.className.split(/\s+/);var h=!!arguments[2];if(h){var e=new RegExp(f,"i")}else{var e=new RegExp("^"+doi.regexp.preg_quote(f)+"$","i")}for(var d in c){if(e.test(c[d])){return true}}return false},hasClassName:function(d,c){var e=!!arguments[2];return this.hasClass(d,c,!!e)},html:function(d){if(!d){return""}if(this.isElement(d)){var f=document.createElement("div");var e=d.cloneNode(true);f.appendChild(e);return f.innerHTML}else{if(this.isString(d)){return d}else{if(this.isArray(d)){htmls=[];for(var c=0;c<d.length;c++){var f=document.createElement("div");var e=d[c].cloneNode(true);f.appendChild(e);htmls.push(f.innerHTML)}return htmls}}}},isArray:function(c){return(c&&!this.isString(c)&&c.length&&c.constructor.toString().indexOf("Array")!=-1)},isBool:function(c){if(c&&c.toLowerCase){c=c.toLowerCase();switch(c){case"true":case"false":return true;default:return false}}return a(c,"boolean")},isBoolean:function(c){return this.isBool(c)},isDefined:function(c){return !doi.dom.isUndefined(c)},isElement:function(d){var c=arguments[1];if(c&&this.isString(c)){c=c.toLowerCase();return(d&&d.nodeName&&d.nodeName.toLowerCase()==c)}return(d&&d.nodeName)},isFunction:function(c){return a(c,"function")},isNaN:function(c){return isNaN(c)},isNumber:function(c){return a(c,"number")},isObject:function(c){return a(c,"object")},isString:function(c){return a(c,"string")},isUndefined:function(c){return(c==undefined)},merge:function(){var d={};for(var c=0;c<arguments.length;c++){if(doi.dom.isObject(arguments[c])){b(d,arguments[c])}}return new doi.dom.clone(d)},outerHTML:function(c){return this.html(c)},parseAttribute:function(d){var g={};if(d&&d.split){var j=d.split(";");var c=j.length;for(var f=0;f<c;f++){var e=j[f].split(":");if(e[0]!=""){e[0]=e[0].replace(/\-(\w{1})/g,function(){return arguments[1].toUpperCase()});var h="";if(!doi.dom.isUndefined(e[1])){h=e[1].toLowerCase()}if(h=="true"||h=="false"){g[e[0]]=(h=="true")}else{g[e[0]]=e[1]}}}}return g},parseFloat:function(c){c=parseFloat(c);if(this.isNaN(c)){c=0}return c},parseInt:function(d,c){if(doi.dom.isUndefined(c)){c=10}d=parseInt(d,c);if(this.isNaN(d)){d=0}return d},removeClass:function(c,h){if(!c){return}var f=[];if(this.isArray(c)){for(var g=0;g<c.length;g++){if(this.isElement(c[g])){f.push(c[g])}}}else{if(this.isElement(c)){f=[c]}}try{var k=!!arguments[2];if(k){var m=new RegExp(h,"i")}else{var m=new RegExp("^"+doi.regexp.preg_quote(h)+"$","i")}for(var g=0;g<f.length;g++){var n=f[g].className.split(/\s+/);var l="";if(n.length){for(var e in n){if(!m.test(n[e])){l+=" "+n[e]}}}f[g].className=this.trim(l)}}catch(d){alert(d)}},removeClassName:function(d,c){var e=!!arguments[2];this.removeClass(d,c,e)},replaceClass:function(e,d,c){var f=!!arguments[3];this.removeClass(e,d,f);this.addClass(e,c)},replaceClassName:function(e,d,c){this.replaceClass(e,d,c)},stringPad:function(g,f,c,e){g=""+g;if(!e){e="left"}var h="";f-=g.length;for(var d=1;d<=f;d++){h+=c;if(h.length>f){h.substr(0,f);break}}if(e!="left"){return g+""+h}return h+""+g},style:function(g,c){if(!g){return}var f=[];if(this.isArray(g)){for(var d=0;d<g.length;d++){if(this.isElement(g[d])){f.push(g[d])}}}else{if(this.isElement(g)){f=[g]}}if(this.isObject(c)){var j="";for(var d in c){j+=d+":"+c[d]+";"}j=this.parseAttribute(j)}else{var j=this.parseAttribute(c)}for(var h=0;h<f.length;h++){g=f[h];for(var d in j){if(d=="opacity"){g.style[d]=this.parseInt(j[d])/10;g.style.filter="alpha(opacity="+(this.parseInt(j[d])*10)+")"}else{g.style[d]=j[d]}}}},toBool:function(c){if(c&&c.toLowerCase){c=c.toLowerCase();switch(c){case"true":return true;case"false":return false}}return !!(c)},toBoolean:function(c){return this.toBool(c)},trim:function(c){if(!c){c=""}if(c.replace){c=c.replace(/^\s+/,"");c=c.replace(/\s+$/,"")}return c},write:function(c){if(!c){return}var e=document.createElement("div");if(this.isElement(c)){e.appendChild(c);var d=document.body;while(d&&d.lastChild&&d.lastChild.nodeType==1){d=d.lastChild}if(d.nodeName=="BODY"){d.appendChild(e.childNodes[0])}else{d.parentNode.appendChild(e.childNodes[0])}}else{if(this.isString(c)){var d=document.body;while(d&&d.lastChild&&d.lastChild.nodeType==1){d=d.lastChild}e.innerHTML=c;if(d.nodeName=="BODY"){d.appendChild(e.childNodes[0])}else{d.parentNode.appendChild(e.childNodes[0])}}}},request:function(){var e={};var d="";var f="";var c=arguments[0]||location.href;function g(){if(/#/.test(c)){f=c.substr(c.indexOf("#")+1,c.length);c=c.substr(0,c.indexOf("#"))}if(/\?/.test(c)){d=c.substr(0,c.indexOf("?"));var l=c.substr(c.indexOf("?")+1,c.length);var k=l.split("&");for(var h=0;h<k.length;h++){var j=k[h].split("=");e[j[0]]=j[1]}}else{d=c}}g();return{get:function(h){if(h){if(e[h]){return e[h]}return null}return e},getAnchor:function(){return f},remove:function(j){if(doi.dom.isArray(j)){for(var h in j){delete e[j[h]]}}else{delete e[j]}},append:function(i,h){e[i]=h},toString:function(){var k=[];for(var h in e){k.push(h+"="+e[h])}var j=k.join("&");if(j!=""){return d+"?"+j}else{return d}}}}}};doi.request=new doi.dom.request();doi.regexp=new function(){this.preg_quote=function(a){return a.replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:\-])/g,"\\$1")};this.RegExp=function(b){var a=arguments[1]||"";return new RegExp(doi.regexp.preg_quote(b),a)}};doi.dom.screen=new function(){return{get:function(){if(document.body.scrollHeight>document.body.offsetHeight){var a=document.body.scrollWidth;var b=document.body.scrollHeight}else{var a=document.body.offsetWidth;var b=document.body.offsetHeight}return{width:a,height:b}},width:function(){return this.get().width},height:function(){return this.get().height}}};doi.dom.dimension=new function(){return{absolutePosition:function(b){var d={top:0,left:0};if(!doi.dom.isElement(b)){return d}if(b.getBoundingClientRect){var a=this.bodyScroll();var c=b.getBoundingClientRect();d.top=c.top+a.scrollTop;d.left=c.left+a.scrollLeft}else{if(b.offsetParent){do{d.left+=b.offsetLeft||0;d.top+=b.offsetTop||0;if(b.offsetParent){d.left-=b.scrollLeft||0;d.top-=b.scrollTop||0}}while(b=b.offsetParent)}}return d},bodyScroll:function(){if(document.documentElement&&document.documentElement.scrollTop){return document.documentElement}return document.body},client:function(){var a={width:0,height:0};if(self.innerWidth){a.width=self.innerWidth;a.height=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientWidth){a.width=document.documentElement.clientWidth;a.height=document.documentElement.clientHeight}else{if(document.body){a.width=document.body.clientWidth;a.height=document.body.clientHeight}}}return a},screen:doi.dom.screen}};
