

var mail1;
var mail2;
function writemail(mail1, mail2){
  document.open();
  document.writeln('<a href=mailto:' + mail1 + '@' + mail2 + '>');
  document.close();
}
function writesafemail(mail1, mail2){
  document.open();
  document.writeln(mail1 + '@' + mail2);
  document.close();
}


function expandcollapse (postid) {
	whichpost = document.getElementById(postid);
	if (whichpost.className=="postshown") { whichpost.className="posthidden"; }
	else { whichpost.className="postshown"; }
}

function expandcollapseMove (postid) {
	whichpost = document.getElementById(postid);
	if (whichpost.className=="postshown") { whichpost.className="posthidden"; }
	else { whichpost.className="postshown"; }
	window.location.href = window.location.href + ("#"+postid);

}

function toggle(o, cls) { //viser/skjuler programbeskrivelsen på forsidens tv-guide
	var disp = o.checked ? 'block' : 'none';
	var lis = document.getElementsByTagName('p');
	for(var i=0; i<lis.length; i++) {
		if(lis[i].className == cls) { lis[i].style.display = disp; }
	}
}

function toggleImageTools(id,flagit) {
	if (flagit=="1"){
			if (document.layers) document.layers[''+id+''].visibility = "show"
			else if (document.all) document.all[''+id+''].style.visibility = "visible"
			else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "visible"
		}
		else
			if (flagit=="0"){
			if (document.layers) document.layers[''+id+''].visibility = "hide"
			else if (document.all) document.all[''+id+''].style.visibility = "hidden"
			else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "hidden"
	}
}
function printarticle() {
	window.print();
}

// Setter vannmerke på inputboksen ved klikk på Google-radio-button
function googleBackground(active) {
	if (active == '1') {
		document.getElementById("search_main").style.backgroundImage = 'url(http://gfx.dagbladet.no/g3/google-vannmerke.jpg)';
	}
	else {
		document.getElementById("search_main").style.backgroundImage = 'url(http://gfx.dagbladet.no/g3/input-bg.gif)';
	}
}
//<a href="#" onMouseOver="toggleImageTools('div1',1)" onMouseOut="toggleImageTools('div1',0)">Link 1</a>
//<div id="div1">...</div>


// Endrer bodys bakgrunnsfarge
function changeBG(color) {
	var chng_body = document.getElementsByTagName("body")[0];
	chng_body.style.background = "#"+color;
}
//function setBG(cookieName,cookieValue,nDays) {
function setBG(colorValue) {
	var today = new Date();
	var expire = new Date();
	nDays=400;
	expire.setTime(today.getTime() + 3600000*24*nDays);
	if (colorValue.toUpperCase() ==  "EDEDED" || colorValue.toUpperCase() == "C6C2B3" || colorValue.toUpperCase() == "34749A" || colorValue.toUpperCase() == "777777") {
		document.cookie = "bgfarge="+escape(colorValue) + ";expires="+expire.toGMTString()+";path=/";
	}
	changeBG(colorValue);
}

function ReadBG() {
	var cookieName = "bgfarge"
	var theCookie=""+document.cookie;
	var ind=theCookie.indexOf(cookieName);
	if (ind==-1 || cookieName=="") return ""; 
		var ind1=theCookie.indexOf(';',ind);
	if (ind1==-1) ind1=theCookie.length; 
	var colorToSet = theCookie.substring(ind+cookieName.length+1,ind1);
	if (colorToSet.toUpperCase() != "EDEDED" && colorToSet.toUpperCase() != "C6C2B3" && colorToSet.toUpperCase() != "34749A" && colorToSet.toUpperCase() != "777777") {
		colorToSet = "EDEDED";
	}
	changeBG(colorToSet);
}

// START-POLLS
var pollAltSelected = 0; 

 function pollAltSelect( id ) 
 {   
 if ( pollAltSelected != 0 ) 
 {     
 document.getElementById( "pollAltRadio_" + pollAltSelected ).checked = false;   
 }  
 
 pollAltSelected = id;   
 document.getElementById( "pollAltRadio_" + id ).checked = true; 
 
 } 
 function pollSubmit( pollid ) 
 {  
  pollPopup = window.open("http://stem.start.no/vote.php?id=" + pollid + "&alt=" + pollAltSelected,"","width=560,height=700");   
  pollPopup.focus();  
  } 
  
  function pollResult( pollid ) 
  {   
  pollPopup = window.open("http://stem.start.no/result.php?id=" + pollid,"","width=560,height=700");   
  pollPopup.focus();  
  }
  
  function changeTextSize(mode) {

        if (mode == "increase") {
            textSize = YAHOO.util.Dom.getStyle("article-text", "font-size");
            textSize = Number(textSize.substring(0,2));
            if (textSize < 18) {
                textSize = textSize+1;
                YAHOO.util.Dom.setStyle("article-text", "font-size", String(textSize) + "px");
            }
        }
        else if (mode == "decrease") {
            textSize = YAHOO.util.Dom.getStyle("article-text", "font-size");
            textSize = Number(textSize.substring(0,2));
            if (textSize > 10) {
                textSize = textSize-1;
                YAHOO.util.Dom.setStyle("article-text", "font-size", String(textSize) + "px");
            }
        }
        else {
            YAHOO.util.Dom.setStyle("article-text", "font-size", "12px");
        }
}

function showTv2Video(progId) {

        var url = "http://webtv.tv2.no/multimedia/webtv/sl_player/?progId=" + progId + "&autoplay=true&panelMode=disabled&referrer=dagbladet"
        var viewportwidth = 1024;;
        var viewportheight = 768;
        
        if (typeof window.innerWidth != 'undefined')
        {
          viewportwidth = window.innerWidth,
          viewportheight = window.innerHeight
        }
        else if (typeof document.documentElement != 'undefined'
         && typeof document.documentElement.clientWidth !=
         'undefined' && document.documentElement.clientWidth != 0)
        {
           viewportwidth = document.documentElement.clientWidth,
           viewportheight = document.documentElement.clientHeight
        }
        else
        {
           viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
           viewportheight = document.getElementsByTagName('body')[0].clientHeight
        }

        
        var popW = 968, popH = 651;
        
        var leftPos = (viewportwidth-popW)/2;
        var topPos = (viewportheight-popH)/2;
        
        
        window.open(url,'tv2player','channelmode=0,directories=0,fullscreen=0,location=0,menubar=0,resizable=1,scrollbars=0,status=0,titlebar=0,toolbar=0,width=' + popW + ',height=' + popH + ',top=' + topPos + ',left=' + leftPos);       
 }

/*
 * Ext JS Library 1.1.1
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://www.extjs.com/license
 */

Ext={};window["undefined"]=window["undefined"];Ext.apply=function(C,D,B){if(B){Ext.apply(C,B)}if(C&&D&&typeof D=="object"){for(var A in D){C[A]=D[A]}}return C};(function(){var idSeed=0;var ua=navigator.userAgent.toLowerCase();var isStrict=document.compatMode=="CSS1Compat",isOpera=ua.indexOf("opera")>-1,isSafari=(/webkit|khtml/).test(ua),isIE=ua.indexOf("msie")>-1,isIE7=ua.indexOf("msie 7")>-1,isGecko=!isSafari&&ua.indexOf("gecko")>-1,isBorderBox=isIE&&!isStrict,isWindows=(ua.indexOf("windows")!=-1||ua.indexOf("win32")!=-1),isMac=(ua.indexOf("macintosh")!=-1||ua.indexOf("mac os x")!=-1),isLinux=(ua.indexOf("linux")!=-1),isSecure=window.location.href.toLowerCase().indexOf("https")===0;if(isIE&&!isIE7){try{document.execCommand("BackgroundImageCache",false,true)}catch(e){}}Ext.apply(Ext,{isStrict:isStrict,isSecure:isSecure,isReady:false,enableGarbageCollector:true,enableListenerCollection:false,SSL_SECURE_URL:"javascript:false",BLANK_IMAGE_URL:"http://gfx.dagbladet.no/blink/blink_3.5/transparent.gif",emptyFn:function(){},applyIf:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]=="undefined"){o[p]=c[p]}}}return o},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o)});return }var cache={};for(var b in o){var parts=b.split("@");if(parts[1]){var s=parts[0];if(!cache[s]){cache[s]=Ext.select(s)}cache[s].on(parts[1],o[b])}}cache=null},id:function(el,prefix){prefix=prefix||"ext-gen";el=Ext.getDom(el);var id=prefix+(++idSeed);return el?(el.id?el.id:(el.id=id)):id},extend:function(){var io=function(o){for(var m in o){this[m]=o[m]}};return function(sb,sp,overrides){if(typeof sp=="object"){overrides=sp;sp=sb;sb=function(){sp.apply(this,arguments)}}var F=function(){},sbp,spp=sp.prototype;F.prototype=spp;sbp=sb.prototype=new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor==Object.prototype.constructor){spp.constructor=sp}sb.override=function(o){Ext.override(sb,o)};sbp.override=io;Ext.override(sb,overrides);return sb}}(),override:function(origclass,overrides){if(overrides){var p=origclass.prototype;for(var method in overrides){p[method]=overrides[method]}}},namespace:function(){var a=arguments,o=null,i,j,d,rt;for(i=0;i<a.length;++i){d=a[i].split(".");rt=d[0];eval("if (typeof "+rt+" == \"undefined\"){"+rt+" = {};} o = "+rt+";");for(j=1;j<d.length;++j){o[d[j]]=o[d[j]]||{};o=o[d[j]]}}},urlEncode:function(o){if(!o){return""}var buf=[];for(var key in o){var ov=o[key],k=encodeURIComponent(key);var type=typeof ov;if(type=="undefined"){buf.push(k,"=&")}else{if(type!="function"&&type!="object"){buf.push(k,"=",encodeURIComponent(ov),"&")}else{if(ov instanceof Array){if(ov.length){for(var i=0,len=ov.length;i<len;i++){buf.push(k,"=",encodeURIComponent(ov[i]===undefined?"":ov[i]),"&")}}else{buf.push(k,"=&")}}}}}buf.pop();return buf.join("")},urlDecode:function(string,overwrite){if(!string||!string.length){return{}}var obj={};var pairs=string.split("&");var pair,name,value;for(var i=0,len=pairs.length;i<len;i++){pair=pairs[i].split("=");name=decodeURIComponent(pair[0]);value=decodeURIComponent(pair[1]);if(overwrite!==true){if(typeof obj[name]=="undefined"){obj[name]=value}else{if(typeof obj[name]=="string"){obj[name]=[obj[name]];obj[name].push(value)}else{obj[name].push(value)}}}else{obj[name]=value}}return obj},each:function(array,fn,scope){if(typeof array.length=="undefined"||typeof array=="string"){array=[array]}for(var i=0,len=array.length;i<len;i++){if(fn.call(scope||array[i],array[i],i,array)===false){return i}}},combine:function(){var as=arguments,l=as.length,r=[];for(var i=0;i<l;i++){var a=as[i];if(a instanceof Array){r=r.concat(a)}else{if(a.length!==undefined&&!a.substr){r=r.concat(Array.prototype.slice.call(a,0))}else{r.push(a)}}}return r},escapeRe:function(s){return s.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},callback:function(cb,scope,args,delay){if(typeof cb=="function"){if(delay){cb.defer(delay,scope,args||[])}else{cb.apply(scope,args||[])}}},getDom:function(el){if(!el){return null}return el.dom?el.dom:(typeof el=="string"?document.getElementById(el):el)},getCmp:function(id){return Ext.ComponentMgr.get(id)},num:function(v,defaultValue){if(typeof v!="number"){return defaultValue}return v},destroy:function(){for(var i=0,a=arguments,len=a.length;i<len;i++){var as=a[i];if(as){if(as.dom){as.removeAllListeners();as.remove();continue}if(typeof as.purgeListeners=="function"){as.purgeListeners()}if(typeof as.destroy=="function"){as.destroy()}}}},type:function(o){if(o===undefined||o===null){return false}if(o.htmlElement){return"element"}var t=typeof o;if(t=="object"&&o.nodeName){switch(o.nodeType){case 1:return"element";case 3:return(/\S/).test(o.nodeValue)?"textnode":"whitespace"}}if(t=="object"||t=="function"){switch(o.constructor){case Array:return"array";case RegExp:return"regexp"}if(typeof o.length=="number"&&typeof o.item=="function"){return"nodelist"}}return t},isEmpty:function(v,allowBlank){return v===null||v===undefined||(!allowBlank?v==="":false)},isOpera:isOpera,isSafari:isSafari,isIE:isIE,isIE7:isIE7,isGecko:isGecko,isBorderBox:isBorderBox,isWindows:isWindows,isLinux:isLinux,isMac:isMac,useShims:((isIE&&!isIE7)||(isGecko&&isMac))})})();Ext.namespace("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux");Ext.apply(Function.prototype,{createCallback:function(){var A=arguments;var B=this;return function(){return B.apply(window,A)}},createDelegate:function(C,B,A){var D=this;return function(){var F=B||arguments;if(A===true){F=Array.prototype.slice.call(arguments,0);F=F.concat(B)}else{if(typeof A=="number"){F=Array.prototype.slice.call(arguments,0);var E=[A,0].concat(B);Array.prototype.splice.apply(F,E)}}return D.apply(C||window,F)}},defer:function(C,E,B,A){var D=this.createDelegate(E,B,A);if(C){return setTimeout(D,C)}D();return 0},createSequence:function(B,A){if(typeof B!="function"){return this}var C=this;return function(){var D=C.apply(this||window,arguments);B.apply(A||this||window,arguments);return D}},createInterceptor:function(B,A){if(typeof B!="function"){return this}var C=this;return function(){B.target=this;B.method=C;if(B.apply(A||this||window,arguments)===false){return }return C.apply(this||window,arguments)}}});Ext.applyIf(String,{escape:function(A){return A.replace(/('|\\)/g,"\\$1")},leftPad:function(D,B,C){var A=new String(D);if(C===null||C===undefined||C===""){C=" "}while(A.length<B){A=C+A}return A},format:function(B){var A=Array.prototype.slice.call(arguments,1);return B.replace(/\{(\d+)\}/g,function(C,D){return A[D]})}});String.prototype.toggle=function(B,A){return this==B?A:B};Ext.applyIf(Number.prototype,{constrain:function(B,A){return Math.min(Math.max(this,B),A)}});Ext.applyIf(Array.prototype,{indexOf:function(C){for(var B=0,A=this.length;B<A;B++){if(this[B]==C){return B}}return -1},remove:function(B){var A=this.indexOf(B);if(A!=-1){this.splice(A,1)}}});Date.prototype.getElapsed=function(A){return Math.abs((A||new Date()).getTime()-this.getTime())};
if(typeof YAHOO=="undefined"){throw"Unable to load Ext, core YUI utilities (yahoo, dom, event) not found."}(function(){var H=YAHOO.util.Event;var I=YAHOO.util.Dom;var C=YAHOO.util.Connect;var J=YAHOO.util.Easing;var B=YAHOO.util.Anim;var F;Ext.lib.Dom={getViewWidth:function(A){return A?I.getDocumentWidth():I.getViewportWidth()},getViewHeight:function(A){return A?I.getDocumentHeight():I.getViewportHeight()},isAncestor:function(A,D){return I.isAncestor(A,D)},getRegion:function(A){return I.getRegion(A)},getY:function(A){return this.getXY(A)[1]},getX:function(A){return this.getXY(A)[0]},getXY:function(E){var D,N,P,Q,M=document.body;E=Ext.getDom(E);if(E.getBoundingClientRect){P=E.getBoundingClientRect();Q=G(document).getScroll();return[P.left+Q.left,P.top+Q.top]}var R=0,O=0;D=E;var A=G(E).getStyle("position")=="absolute";while(D){R+=D.offsetLeft;O+=D.offsetTop;if(!A&&G(D).getStyle("position")=="absolute"){A=true}if(Ext.isGecko){N=G(D);var S=parseInt(N.getStyle("borderTopWidth"),10)||0;var K=parseInt(N.getStyle("borderLeftWidth"),10)||0;R+=K;O+=S;if(D!=E&&N.getStyle("overflow")!="visible"){R+=K;O+=S}}D=D.offsetParent}if(Ext.isSafari&&A){R-=M.offsetLeft;O-=M.offsetTop}if(Ext.isGecko&&!A){var L=G(M);R+=parseInt(L.getStyle("borderLeftWidth"),10)||0;O+=parseInt(L.getStyle("borderTopWidth"),10)||0}D=E.parentNode;while(D&&D!=M){if(!Ext.isOpera||(D.tagName!="TR"&&G(D).getStyle("display")!="inline")){R-=D.scrollLeft;O-=D.scrollTop}D=D.parentNode}return[R,O]},setXY:function(A,D){A=Ext.fly(A,"_setXY");A.position();var E=A.translatePoints(D);if(D[0]!==false){A.dom.style.left=E.left+"px"}if(D[1]!==false){A.dom.style.top=E.top+"px"}},setX:function(D,A){this.setXY(D,[A,false])},setY:function(A,D){this.setXY(A,[false,D])}};Ext.lib.Event={getPageX:function(A){return H.getPageX(A.browserEvent||A)},getPageY:function(A){return H.getPageY(A.browserEvent||A)},getXY:function(A){return H.getXY(A.browserEvent||A)},getTarget:function(A){return H.getTarget(A.browserEvent||A)},getRelatedTarget:function(A){return H.getRelatedTarget(A.browserEvent||A)},on:function(L,A,K,E,D){H.on(L,A,K,E,D)},un:function(E,A,D){H.removeListener(E,A,D)},purgeElement:function(A){H.purgeElement(A)},preventDefault:function(A){H.preventDefault(A.browserEvent||A)},stopPropagation:function(A){H.stopPropagation(A.browserEvent||A)},stopEvent:function(A){H.stopEvent(A.browserEvent||A)},onAvailable:function(K,E,D,A){return H.onAvailable(K,E,D,A)}};Ext.lib.Ajax={request:function(N,L,A,M,D){if(D){var E=D.headers;if(E){for(var K in E){if(E.hasOwnProperty(K)){C.initHeader(K,E[K],false)}}}if(D.xmlData){C.initHeader("Content-Type","text/xml",false);N="POST";M=D.xmlData}}return C.asyncRequest(N,L,A,M)},formRequest:function(L,K,D,M,A,E){C.setForm(L,A,E);return C.asyncRequest(Ext.getDom(L).method||"POST",K,D,M)},isCallInProgress:function(A){return C.isCallInProgress(A)},abort:function(A){return C.abort(A)},serializeForm:function(A){var D=C.setForm(A.dom||A);C.resetFormState();return D}};Ext.lib.Region=YAHOO.util.Region;Ext.lib.Point=YAHOO.util.Point;Ext.lib.Anim={scroll:function(K,D,L,M,A,E){this.run(K,D,L,M,A,E,YAHOO.util.Scroll)},motion:function(K,D,L,M,A,E){this.run(K,D,L,M,A,E,YAHOO.util.Motion)},color:function(K,D,L,M,A,E){this.run(K,D,L,M,A,E,YAHOO.util.ColorAnim)},run:function(L,D,N,O,A,K,E){E=E||YAHOO.util.Anim;if(typeof O=="string"){O=YAHOO.util.Easing[O]}var M=new E(L,D,N,O);M.animateX(function(){Ext.callback(A,K)});return M}};function G(A){if(!F){F=new Ext.Element.Flyweight()}F.dom=A;return F}if(Ext.isIE){YAHOO.util.Event.on(window,"unload",function(){var A=Function.prototype;delete A.createSequence;delete A.defer;delete A.createDelegate;delete A.createCallback;delete A.createInterceptor})}if(YAHOO.util.Anim){YAHOO.util.Anim.prototype.animateX=function(E,A){var D=function(){this.onComplete.unsubscribe(D);if(typeof E=="function"){E.call(A||this,this)}};this.onComplete.subscribe(D,this,true);this.animate()}}if(YAHOO.util.DragDrop&&Ext.dd.DragDrop){YAHOO.util.DragDrop.defaultPadding=Ext.dd.DragDrop.defaultPadding;YAHOO.util.DragDrop.constrainTo=Ext.dd.DragDrop.constrainTo}YAHOO.util.Dom.getXY=function(A){var D=function(E){return Ext.lib.Dom.getXY(E)};return YAHOO.util.Dom.batch(A,D,YAHOO.util.Dom,true)};if(YAHOO.util.AnimMgr){YAHOO.util.AnimMgr.fps=1000}YAHOO.util.Region.prototype.adjust=function(E,D,A,K){this.top+=E;this.left+=D;this.right+=K;this.bottom+=A;return this}})();


/*
 * Ext JS Library 1.1 RC 1
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://www.extjs.com/license
 */



Ext={};window["undefined"]=window["undefined"];Ext.apply=function(o,c,_3){if(_3){Ext.apply(o,_3);}if(o&&c&&typeof c=="object"){for(var p in c){o[p]=c[p];}}return o;};(function(){var _5=0;var ua=navigator.userAgent.toLowerCase();var _7=document.compatMode=="CSS1Compat",_8=ua.indexOf("opera")>-1,_9=(/webkit|khtml/).test(ua),_a=ua.indexOf("msie")>-1,_b=ua.indexOf("msie 7")>-1,_c=!_9&&ua.indexOf("gecko")>-1,_d=_a&&!_7,_e=(ua.indexOf("windows")!=-1||ua.indexOf("win32")!=-1),_f=(ua.indexOf("macintosh")!=-1||ua.indexOf("mac os x")!=-1),_10=(ua.indexOf("linux")!=-1),_11=window.location.href.toLowerCase().indexOf("https")===0;if(_a&&!_b){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}Ext.apply(Ext,{isStrict:_7,isSecure:_11,isReady:false,enableGarbageCollector:true,enableListenerCollection:false,SSL_SECURE_URL:"javascript:false",BLANK_IMAGE_URL:"http://gfx.dagbladet.no/blink/blink_3.5/transparent.gif",emptyFn:function(){},applyIf:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]=="undefined"){o[p]=c[p];}}}return o;},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o);});return;}var _16={};for(var b in o){var _18=b.split("@");if(_18[1]){var s=_18[0];if(!_16[s]){_16[s]=Ext.select(s);}_16[s].on(_18[1],o[b]);}}_16=null;},id:function(el,_1b){_1b=_1b||"ext-gen";el=Ext.getDom(el);var id=_1b+(++_5);return el?(el.id?el.id:(el.id=id)):id;},extend:function(){var io=function(o){for(var m in o){this[m]=o[m];}};return function(sb,sp,_22){if(typeof sp=="object"){_22=sp;sp=sb;sb=function(){sp.apply(this,arguments);};}var F=function(){},sbp,spp=sp.prototype;F.prototype=spp;sbp=sb.prototype=new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor==Object.prototype.constructor){spp.constructor=sp;}sb.override=function(o){Ext.override(sb,o);};sbp.override=io;Ext.override(sb,_22);return sb;};}(),override:function(_27,_28){if(_28){var p=_27.prototype;for(var _2a in _28){p[_2a]=_28[_2a];}}},namespace:function(){var a=arguments,o=null,i,j,d,rt;for(i=0;i<a.length;++i){d=a[i].split(".");rt=d[0];eval("if (typeof "+rt+" == \"undefined\"){"+rt+" = {};} o = "+rt+";");for(j=1;j<d.length;++j){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}},urlEncode:function(o){if(!o){return"";}var buf=[];for(var key in o){var ov=o[key];var _35=typeof ov;if(_35=="undefined"){buf.push(encodeURIComponent(key),"=&");}else{if(_35!="function"&&_35!="object"){buf.push(encodeURIComponent(key),"=",encodeURIComponent(ov),"&");}else{if(ov instanceof Array){for(var i=0,len=ov.length;i<len;i++){buf.push(encodeURIComponent(key),"=",encodeURIComponent(ov[i]===undefined?"":ov[i]),"&");}}}}}buf.pop();return buf.join("");},urlDecode:function(_38,_39){if(!_38||!_38.length){return{};}var obj={};var _3b=_38.split("&");var _3c,_3d,_3e;for(var i=0,len=_3b.length;i<len;i++){_3c=_3b[i].split("=");_3d=decodeURIComponent(_3c[0]);_3e=decodeURIComponent(_3c[1]);if(_39!==true){if(typeof obj[_3d]=="undefined"){obj[_3d]=_3e;}else{if(typeof obj[_3d]=="string"){obj[_3d]=[obj[_3d]];obj[_3d].push(_3e);}else{obj[_3d].push(_3e);}}}else{obj[_3d]=_3e;}}return obj;},each:function(_41,fn,_43){if(typeof _41.length=="undefined"||typeof _41=="string"){_41=[_41];}for(var i=0,len=_41.length;i<len;i++){if(fn.call(_43||_41[i],_41[i],i,_41)===false){return i;}}},combine:function(){var as=arguments,l=as.length,r=[];for(var i=0;i<l;i++){var a=as[i];if(a instanceof Array){r=r.concat(a);}else{if(a.length!==undefined&&!a.substr){r=r.concat(Array.prototype.slice.call(a,0));}else{r.push(a);}}}return r;},escapeRe:function(s){return s.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1");},callback:function(cb,_4d,_4e,_4f){if(typeof cb=="function"){if(_4f){cb.defer(_4f,_4d,_4e||[]);}else{cb.apply(_4d,_4e||[]);}}},getDom:function(el){if(!el){return null;}return el.dom?el.dom:(typeof el=="string"?document.getElementById(el):el);},getCmp:function(id){return Ext.ComponentMgr.get(id);},num:function(v,_53){if(typeof v!="number"){return _53;}return v;},destroy:function(){for(var i=0,a=arguments,len=a.length;i<len;i++){var as=a[i];if(as){if(as.dom){as.removeAllListeners();as.remove();continue;}if(typeof as.purgeListeners=="function"){as.purgeListeners();}if(typeof as.destroy=="function"){as.destroy();}}}},type:function(o){if(o===undefined||o===null){return false;}if(o.htmlElement){return"element";}var t=typeof o;if(t=="object"&&o.nodeName){switch(o.nodeType){case 1:return"element";case 3:return(/\S/).test(o.nodeValue)?"textnode":"whitespace";}}if(t=="object"||t=="function"){switch(o.constructor){case Array:return"array";case RegExp:return"regexp";}if(typeof o.length=="number"&&typeof o.item=="function"){return"nodelist";}}return t;},isEmpty:function(v,_5b){return v===null||v===undefined||(!_5b?v==="":false);},isOpera:_8,isSafari:_9,isIE:_a,isIE7:_b,isGecko:_c,isBorderBox:_d,isWindows:_e,isLinux:_10,isMac:_f,useShims:((_a&&!_b)||(_c&&_f))});})();Ext.namespace("Ext","Ext.util","Ext.grid","Ext.dd","Ext.tree","Ext.data","Ext.form","Ext.menu","Ext.state","Ext.lib","Ext.layout","Ext.app","Ext.ux");Ext.apply(Function.prototype,{createCallback:function(){var _5c=arguments;var _5d=this;return function(){return _5d.apply(window,_5c);};},createDelegate:function(obj,_5f,_60){var _61=this;return function(){var _62=_5f||arguments;if(_60===true){_62=Array.prototype.slice.call(arguments,0);_62=_62.concat(_5f);}else{if(typeof _60=="number"){_62=Array.prototype.slice.call(arguments,0);var _63=[_60,0].concat(_5f);Array.prototype.splice.apply(_62,_63);}}return _61.apply(obj||window,_62);};},defer:function(_64,obj,_66,_67){var fn=this.createDelegate(obj,_66,_67);if(_64){return setTimeout(fn,_64);}fn();return 0;},createSequence:function(fcn,_6a){if(typeof fcn!="function"){return this;}var _6b=this;return function(){var _6c=_6b.apply(this||window,arguments);fcn.apply(_6a||this||window,arguments);return _6c;};},createInterceptor:function(fcn,_6e){if(typeof fcn!="function"){return this;}var _6f=this;return function(){fcn.target=this;fcn.method=_6f;if(fcn.apply(_6e||this||window,arguments)===false){return;}return _6f.apply(this||window,arguments);};}});Ext.applyIf(String,{escape:function(_70){return _70.replace(/('|\\)/g,"\\$1");},leftPad:function(val,_72,ch){var _74=new String(val);if(ch===null||ch===undefined||ch===""){ch=" ";}while(_74.length<_72){_74=ch+_74;}return _74;},format:function(_75){var _76=Array.prototype.slice.call(arguments,1);return _75.replace(/\{(\d+)\}/g,function(m,i){return _76[i];});}});String.prototype.toggle=function(_79,_7a){return this==_79?_7a:_79;};Ext.applyIf(Number.prototype,{constrain:function(min,max){return Math.min(Math.max(this,min),max);}});Ext.applyIf(Array.prototype,{indexOf:function(o){for(var i=0,len=this.length;i<len;i++){if(this[i]==o){return i;}}return-1;},remove:function(o){var _81=this.indexOf(o);if(_81!=-1){this.splice(_81,1);}}});Date.prototype.getElapsed=function(_82){return Math.abs((_82||new Date()).getTime()-this.getTime());};



if(typeof YAHOO=="undefined"){throw"Unable to load Ext, core YUI utilities (yahoo, dom, event) not found.";}(function(){var E=YAHOO.util.Event;var D=YAHOO.util.Dom;var CN=YAHOO.util.Connect;var ES=YAHOO.util.Easing;var A=YAHOO.util.Anim;var _6;Ext.lib.Dom={getViewWidth:function(_7){return _7?D.getDocumentWidth():D.getViewportWidth();},getViewHeight:function(_8){return _8?D.getDocumentHeight():D.getViewportHeight();},isAncestor:function(_9,_a){return D.isAncestor(_9,_a);},getRegion:function(el){return D.getRegion(el);},getY:function(el){return this.getXY(el)[1];},getX:function(el){return this.getXY(el)[0];},getXY:function(el){var p,pe,b,_12,bd=document.body;el=Ext.getDom(el);if(el.getBoundingClientRect){b=el.getBoundingClientRect();_12=fly(document).getScroll();return[b.left+_12.left,b.top+_12.top];}var x=0,y=0;p=el;var _16=fly(el).getStyle("position")=="absolute";while(p){x+=p.offsetLeft;y+=p.offsetTop;if(!_16&&fly(p).getStyle("position")=="absolute"){_16=true;}if(Ext.isGecko){pe=fly(p);var bt=parseInt(pe.getStyle("borderTopWidth"),10)||0;var bl=parseInt(pe.getStyle("borderLeftWidth"),10)||0;x+=bl;y+=bt;if(p!=el&&pe.getStyle("overflow")!="visible"){x+=bl;y+=bt;}}p=p.offsetParent;}if(Ext.isSafari&&_16){x-=bd.offsetLeft;y-=bd.offsetTop;}if(Ext.isGecko&&!_16){var dbd=fly(bd);x+=parseInt(dbd.getStyle("borderLeftWidth"),10)||0;y+=parseInt(dbd.getStyle("borderTopWidth"),10)||0;}p=el.parentNode;while(p&&p!=bd){if(!(Ext.isOpera&&p.tagName!="TR"&&fly(p).getStyle("display")!="inline")){x-=p.scrollLeft;y-=p.scrollTop;}p=p.parentNode;}return[x,y];},setXY:function(el,xy){el=Ext.fly(el,"_setXY");el.position();var pts=el.translatePoints(xy);if(xy[0]!==false){el.dom.style.left=pts.left+"px";}if(xy[1]!==false){el.dom.style.top=pts.top+"px";}},setX:function(el,x){this.setXY(el,[x,false]);},setY:function(el,y){this.setXY(el,[false,y]);}};Ext.lib.Event={getPageX:function(e){return E.getPageX(e.browserEvent||e);},getPageY:function(e){return E.getPageY(e.browserEvent||e);},getXY:function(e){return E.getXY(e.browserEvent||e);},getTarget:function(e){return E.getTarget(e.browserEvent||e);},getRelatedTarget:function(e){return E.getRelatedTarget(e.browserEvent||e);},on:function(el,_27,fn,_29,_2a){E.on(el,_27,fn,_29,_2a);},un:function(el,_2c,fn){E.removeListener(el,_2c,fn);},purgeElement:function(el){E.purgeElement(el);},preventDefault:function(e){E.preventDefault(e.browserEvent||e);},stopPropagation:function(e){E.stopPropagation(e.browserEvent||e);},stopEvent:function(e){E.stopEvent(e.browserEvent||e);},onAvailable:function(el,fn,_34,_35){return E.onAvailable(el,fn,_34,_35);}};Ext.lib.Ajax={request:function(_36,uri,cb,_39,_3a){if(_3a){var hs=_3a.headers;if(hs){for(var h in hs){if(hs.hasOwnProperty(h)){CN.initHeader(h,hs[h],false);}}}if(_3a.xmlData){CN.initHeader("Content-Type","text/xml",false);_36="POST";_39=_3a.xmlData;}}return CN.asyncRequest(_36,uri,cb,_39);},formRequest:function(_3d,uri,cb,_40,_41,_42){CN.setForm(_3d,_41,_42);return CN.asyncRequest(Ext.getDom(_3d).method||"POST",uri,cb,_40);},isCallInProgress:function(_43){return CN.isCallInProgress(_43);},abort:function(_44){return CN.abort(_44);},serializeForm:function(_45){var d=CN.setForm(_45.dom||_45);CN.resetFormState();return d;}};Ext.lib.Region=YAHOO.util.Region;Ext.lib.Point=YAHOO.util.Point;Ext.lib.Anim={scroll:function(el,_48,_49,_4a,cb,_4c){this.run(el,_48,_49,_4a,cb,_4c,YAHOO.util.Scroll);},motion:function(el,_4e,_4f,_50,cb,_52){this.run(el,_4e,_4f,_50,cb,_52,YAHOO.util.Motion);},color:function(el,_54,_55,_56,cb,_58){this.run(el,_54,_55,_56,cb,_58,YAHOO.util.ColorAnim);},run:function(el,_5a,_5b,_5c,cb,_5e,_5f){_5f=_5f||YAHOO.util.Anim;if(typeof _5c=="string"){_5c=YAHOO.util.Easing[_5c];}var _60=new _5f(el,_5a,_5b,_5c);_60.animateX(function(){Ext.callback(cb,_5e);});return _60;}};function fly(el){if(!_6){_6=new Ext.Element.Flyweight();}_6.dom=el;return _6;}if(Ext.isIE){YAHOO.util.Event.on(window,"unload",function(){var p=Function.prototype;delete p.createSequence;delete p.defer;delete p.createDelegate;delete p.createCallback;delete p.createInterceptor;});}if(YAHOO.util.Anim){YAHOO.util.Anim.prototype.animateX=function(_63,_64){var f=function(){this.onComplete.unsubscribe(f);if(typeof _63=="function"){_63.call(_64||this,this);}};this.onComplete.subscribe(f,this,true);this.animate();};}if(YAHOO.util.DragDrop&&Ext.dd.DragDrop){YAHOO.util.DragDrop.defaultPadding=Ext.dd.DragDrop.defaultPadding;YAHOO.util.DragDrop.constrainTo=Ext.dd.DragDrop.constrainTo;}YAHOO.util.Dom.getXY=function(el){var f=function(el){return Ext.lib.Dom.getXY(el);};return YAHOO.util.Dom.batch(el,f,YAHOO.util.Dom,true);};if(YAHOO.util.AnimMgr){YAHOO.util.AnimMgr.fps=1000;}YAHOO.util.Region.prototype.adjust=function(t,l,b,r){this.top+=t;this.left+=l;this.right+=r;this.bottom+=b;return this;};})();



Ext.DomHelper=function(){var _1=null;var _2=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;var _3=/^table|tbody|tr|td$/i;var _4=function(o){if(typeof o=="string"){return o;}var b="";if(!o.tag){o.tag="div";}b+="<"+o.tag;for(var _7 in o){if(_7=="tag"||_7=="children"||_7=="cn"||_7=="html"||typeof o[_7]=="function"){continue;}if(_7=="style"){var s=o["style"];if(typeof s=="function"){s=s.call();}if(typeof s=="string"){b+=" style=\""+s+"\"";}else{if(typeof s=="object"){b+=" style=\"";for(var _9 in s){if(typeof s[_9]!="function"){b+=_9+":"+s[_9]+";";}}b+="\"";}}}else{if(_7=="cls"){b+=" class=\""+o["cls"]+"\"";}else{if(_7=="htmlFor"){b+=" for=\""+o["htmlFor"]+"\"";}else{b+=" "+_7+"=\""+o[_7]+"\"";}}}}if(_2.test(o.tag)){b+="/>";}else{b+=">";var cn=o.children||o.cn;if(cn){if(cn instanceof Array){for(var i=0,_c=cn.length;i<_c;i++){b+=_4(cn[i],b);}}else{b+=_4(cn,b);}}if(o.html){b+=o.html;}b+="</"+o.tag+">";}return b;};var _d=function(o,_f){var el=document.createElement(o.tag||"div");var _11=el.setAttribute?true:false;for(var _12 in o){if(_12=="tag"||_12=="children"||_12=="cn"||_12=="html"||_12=="style"||typeof o[_12]=="function"){continue;}if(_12=="cls"){el.className=o["cls"];}else{if(_11){el.setAttribute(_12,o[_12]);}else{el[_12]=o[_12];}}}Ext.DomHelper.applyStyles(el,o.style);var cn=o.children||o.cn;if(cn){if(cn instanceof Array){for(var i=0,len=cn.length;i<len;i++){_d(cn[i],el);}}else{_d(cn,el);}}if(o.html){el.innerHTML=o.html;}if(_f){_f.appendChild(el);}return el;};var _16=function(_17,s,h,e){_1.innerHTML=[s,h,e].join("");var i=-1,el=_1;while(++i<_17){el=el.firstChild;}return el;};var ts="<table>",te="</table>",tbs=ts+"<tbody>",tbe="</tbody>"+te,trs=tbs+"<tr>",tre="</tr>"+tbe;var _23=function(tag,_25,el,_27){if(!_1){_1=document.createElement("div");}var _28;var _29=null;if(tag=="td"){if(_25=="afterbegin"||_25=="beforeend"){return;}if(_25=="beforebegin"){_29=el;el=el.parentNode;}else{_29=el.nextSibling;el=el.parentNode;}_28=_16(4,trs,_27,tre);}else{if(tag=="tr"){if(_25=="beforebegin"){_29=el;el=el.parentNode;_28=_16(3,tbs,_27,tbe);}else{if(_25=="afterend"){_29=el.nextSibling;el=el.parentNode;_28=_16(3,tbs,_27,tbe);}else{if(_25=="afterbegin"){_29=el.firstChild;}_28=_16(4,trs,_27,tre);}}}else{if(tag=="tbody"){if(_25=="beforebegin"){_29=el;el=el.parentNode;_28=_16(2,ts,_27,te);}else{if(_25=="afterend"){_29=el.nextSibling;el=el.parentNode;_28=_16(2,ts,_27,te);}else{if(_25=="afterbegin"){_29=el.firstChild;}_28=_16(3,tbs,_27,tbe);}}}else{if(_25=="beforebegin"||_25=="afterend"){return;}if(_25=="afterbegin"){_29=el.firstChild;}_28=_16(2,ts,_27,te);}}}el.insertBefore(_28,_29);return _28;};return{useDom:false,markup:function(o){return _4(o);},applyStyles:function(el,_2c){if(_2c){el=Ext.fly(el);if(typeof _2c=="string"){var re=/\s?([a-z\-]*)\:\s?([^;]*);?/gi;var _2e;while((_2e=re.exec(_2c))!=null){el.setStyle(_2e[1],_2e[2]);}}else{if(typeof _2c=="object"){for(var _2f in _2c){el.setStyle(_2f,_2c[_2f]);}}else{if(typeof _2c=="function"){Ext.DomHelper.applyStyles(el,_2c.call());}}}}},insertHtml:function(_30,el,_32){_30=_30.toLowerCase();if(el.insertAdjacentHTML){if(_3.test(el.tagName)){var rs;if(rs=_23(el.tagName.toLowerCase(),_30,el,_32)){return rs;}}switch(_30){case"beforebegin":el.insertAdjacentHTML("BeforeBegin",_32);return el.previousSibling;case"afterbegin":el.insertAdjacentHTML("AfterBegin",_32);return el.firstChild;case"beforeend":el.insertAdjacentHTML("BeforeEnd",_32);return el.lastChild;case"afterend":el.insertAdjacentHTML("AfterEnd",_32);return el.nextSibling;}throw"Illegal insertion point -> \""+_30+"\"";}var _34=el.ownerDocument.createRange();var _35;switch(_30){case"beforebegin":_34.setStartBefore(el);_35=_34.createContextualFragment(_32);el.parentNode.insertBefore(_35,el);return el.previousSibling;case"afterbegin":if(el.firstChild){_34.setStartBefore(el.firstChild);_35=_34.createContextualFragment(_32);el.insertBefore(_35,el.firstChild);return el.firstChild;}else{el.innerHTML=_32;return el.firstChild;}case"beforeend":if(el.lastChild){_34.setStartAfter(el.lastChild);_35=_34.createContextualFragment(_32);el.appendChild(_35);return el.lastChild;}else{el.innerHTML=_32;return el.lastChild;}case"afterend":_34.setStartAfter(el);_35=_34.createContextualFragment(_32);el.parentNode.insertBefore(_35,el.nextSibling);return el.nextSibling;}throw"Illegal insertion point -> \""+_30+"\"";},insertBefore:function(el,o,_38){return this.doInsert(el,o,_38,"beforeBegin");},insertAfter:function(el,o,_3b){return this.doInsert(el,o,_3b,"afterEnd","nextSibling");},insertFirst:function(el,o,_3e){return this.doInsert(el,o,_3e,"afterBegin");},doInsert:function(el,o,_41,pos,_43){el=Ext.getDom(el);var _44;if(this.useDom){_44=_d(o,null);el.parentNode.insertBefore(_44,_43?el[_43]:el);}else{var _45=_4(o);_44=this.insertHtml(pos,el,_45);}return _41?Ext.get(_44,true):_44;},append:function(el,o,_48){el=Ext.getDom(el);var _49;if(this.useDom){_49=_d(o,null);el.appendChild(_49);}else{var _4a=_4(o);_49=this.insertHtml("beforeEnd",el,_4a);}return _48?Ext.get(_49,true):_49;},overwrite:function(el,o,_4d){el=Ext.getDom(el);el.innerHTML=_4(o);return _4d?Ext.get(el.firstChild,true):el.firstChild;},createTemplate:function(o){var _4f=_4(o);return new Ext.Template(_4f);}};}();



Ext.Template=function(_1){if(_1 instanceof Array){_1=_1.join("");}else{if(arguments.length>1){_1=Array.prototype.join.call(arguments,"");}}this.html=_1;};Ext.Template.prototype={applyTemplate:function(_2){if(this.compiled){return this.compiled(_2);}var _3=this.disableFormats!==true;var fm=Ext.util.Format,_5=this;var fn=function(m,_8,_9,_a){if(_9&&_3){if(_9.substr(0,5)=="this."){return _5.call(_9.substr(5),_2[_8],_2);}else{if(_a){var re=/^\s*['"](.*)["']\s*$/;_a=_a.split(",");for(var i=0,_d=_a.length;i<_d;i++){_a[i]=_a[i].replace(re,"$1");}_a=[_2[_8]].concat(_a);}else{_a=[_2[_8]];}return fm[_9].apply(fm,_a);}}else{return _2[_8]!==undefined?_2[_8]:"";}};return this.html.replace(this.re,fn);},set:function(_e,_f){this.html=_e;this.compiled=null;if(_f){this.compile();}return this;},disableFormats:false,re:/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile:function(){var fm=Ext.util.Format;var _11=this.disableFormats!==true;var sep=Ext.isGecko?"+":",";var fn=function(m,_15,_16,_17){if(_16&&_11){_17=_17?","+_17:"";if(_16.substr(0,5)!="this."){_16="fm."+_16+"(";}else{_16="this.call(\""+_16.substr(5)+"\", ";_17=", values";}}else{_17="";_16="(values['"+_15+"'] == undefined ? '' : ";}return"'"+sep+_16+"values['"+_15+"']"+_17+")"+sep+"'";};var _18;if(Ext.isGecko){_18="this.compiled = function(values){ return '"+this.html.replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn)+"';};";}else{_18=["this.compiled = function(values){ return ['"];_18.push(this.html.replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn));_18.push("'].join('');};");_18=_18.join("");}eval(_18);return this;},call:function(_19,_1a,_1b){return this[_19](_1a,_1b);},insertFirst:function(el,_1d,_1e){return this.doInsert("afterBegin",el,_1d,_1e);},insertBefore:function(el,_20,_21){return this.doInsert("beforeBegin",el,_20,_21);},insertAfter:function(el,_23,_24){return this.doInsert("afterEnd",el,_23,_24);},append:function(el,_26,_27){return this.doInsert("beforeEnd",el,_26,_27);},doInsert:function(_28,el,_2a,_2b){el=Ext.getDom(el);var _2c=Ext.DomHelper.insertHtml(_28,el,this.applyTemplate(_2a));return _2b?Ext.get(_2c,true):_2c;},overwrite:function(el,_2e,_2f){el=Ext.getDom(el);el.innerHTML=this.applyTemplate(_2e);return _2f?Ext.get(el.firstChild,true):el.firstChild;}};Ext.Template.prototype.apply=Ext.Template.prototype.applyTemplate;Ext.DomHelper.Template=Ext.Template;Ext.Template.from=function(el){el=Ext.getDom(el);return new Ext.Template(el.value||el.innerHTML);};



Ext.DomQuery=function(){var _1={},_2={},_3={};var _4=/\S/;var _5=/^\s+|\s+$/g;var _6=/\{(\d+)\}/g;var _7=/^(\s?[\/>+~]\s?|\s|$)/;var _8=/^(#)?([\w-\*]+)/;var _9=/(\d*)n\+?(\d*)/,_a=/\D/;function child(p,_c){var i=0;var n=p.firstChild;while(n){if(n.nodeType==1){if(++i==_c){return n;}}n=n.nextSibling;}return null;}function next(n){while((n=n.nextSibling)&&n.nodeType!=1){}return n;}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1){}return n;}function children(d){var n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!_4.test(n.nodeValue)){d.removeChild(n);}else{n.nodeIndex=++ni;}n=nx;}return this;}function byClassName(c,a,v){if(!v){return c;}var r=[],ri=-1,cn;for(var i=0,ci;ci=c[i];i++){if((" "+ci.className+" ").indexOf(v)!=-1){r[++ri]=ci;}}return r;}function attrValue(n,_1e){if(!n.tagName&&typeof n.length!="undefined"){n=n[0];}if(!n){return null;}if(_1e=="for"){return n.htmlFor;}if(_1e=="class"||_1e=="className"){return n.className;}return n.getAttribute(_1e)||n[_1e];}function getNodes(ns,_20,_21){var _22=[],ri=-1,cs;if(!ns){return _22;}_21=_21||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns];}if(!_20){for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(_21);for(var j=0,ci;ci=cs[j];j++){_22[++ri]=ci;}}}else{if(_20=="/"||_20==">"){var _29=_21.toUpperCase();for(var i=0,ni,cn;ni=ns[i];i++){cn=ni.children||ni.childNodes;for(var j=0,cj;cj=cn[j];j++){if(cj.nodeName==_29||cj.nodeName==_21||_21=="*"){_22[++ri]=cj;}}}}else{if(_20=="+"){var _29=_21.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(n&&(n.nodeName==_29||n.nodeName==_21||_21=="*")){_22[++ri]=n;}}}else{if(_20=="~"){for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&(n.nodeType!=1||(_21=="*"||n.tagName.toLowerCase()!=_21))){}if(n){_22[++ri]=n;}}}}}}return _22;}function concat(a,b){if(b.slice){return a.concat(b);}for(var i=0,l=b.length;i<l;i++){a[a.length]=b[i];}return a;}function byTag(cs,_32){if(cs.tagName||cs==document){cs=[cs];}if(!_32){return cs;}var r=[],ri=-1;_32=_32.toLowerCase();for(var i=0,ci;ci=cs[i];i++){if(ci.nodeType==1&&ci.tagName.toLowerCase()==_32){r[++ri]=ci;}}return r;}function byId(cs,_38,id){if(cs.tagName||cs==document){cs=[cs];}if(!id){return cs;}var r=[],ri=-1;for(var i=0,ci;ci=cs[i];i++){if(ci&&ci.id==id){r[++ri]=ci;return r;}}return r;}function byAttribute(cs,_3f,_40,op,_42){var r=[],ri=-1,st=_42=="{";var f=Ext.DomQuery.operators[op];for(var i=0,ci;ci=cs[i];i++){var a;if(st){a=Ext.DomQuery.getStyle(ci,_3f);}else{if(_3f=="class"||_3f=="className"){a=ci.className;}else{if(_3f=="for"){a=ci.htmlFor;}else{if(_3f=="href"){a=ci.getAttribute("href",2);}else{a=ci.getAttribute(_3f);}}}}if((f&&f(a,_40))||(!f&&a)){r[++ri]=ci;}}return r;}function byPseudo(cs,_4b,_4c){return Ext.DomQuery.pseudos[_4b](cs,_4c);}var _4d=window.ActiveXObject?true:false;eval("var batch = 30803;");var key=30803;function nodupIEXml(cs){var d=++key;cs[0].setAttribute("_nodup",d);var r=[cs[0]];for(var i=1,len=cs.length;i<len;i++){var c=cs[i];if(!c.getAttribute("_nodup")!=d){c.setAttribute("_nodup",d);r[r.length]=c;}}for(var i=0,len=cs.length;i<len;i++){cs[i].removeAttribute("_nodup");}return r;}function nodup(cs){if(!cs){return[];}var len=cs.length,c,i,r=cs,cj,ri=-1;if(!len||typeof cs.nodeType!="undefined"||len==1){return cs;}if(_4d&&typeof cs[0].selectSingleNode!="undefined"){return nodupIEXml(cs);}var d=++key;cs[0]._nodup=d;for(i=1;c=cs[i];i++){if(c._nodup!=d){c._nodup=d;}else{r=[];for(var j=0;j<i;j++){r[++ri]=cs[j];}for(j=i+1;cj=cs[j];j++){if(cj._nodup!=d){cj._nodup=d;r[++ri]=cj;}}return r;}}return r;}function quickDiffIEXml(c1,c2){var d=++key;for(var i=0,len=c1.length;i<len;i++){c1[i].setAttribute("_qdiff",d);}var r=[];for(var i=0,len=c2.length;i<len;i++){if(c2[i].getAttribute("_qdiff")!=d){r[r.length]=c2[i];}}for(var i=0,len=c1.length;i<len;i++){c1[i].removeAttribute("_qdiff");}return r;}function quickDiff(c1,c2){var _66=c1.length;if(!_66){return c2;}if(_4d&&c1[0].selectSingleNode){return quickDiffIEXml(c1,c2);}var d=++key;for(var i=0;i<_66;i++){c1[i]._qdiff=d;}var r=[];for(var i=0,len=c2.length;i<len;i++){if(c2[i]._qdiff!=d){r[r.length]=c2[i];}}return r;}function quickId(ns,_6c,_6d,id){if(ns==_6d){var d=_6d.ownerDocument||_6d;return d.getElementById(id);}ns=getNodes(ns,_6c,"*");return byId(ns,null,id);}return{getStyle:function(el,_71){return Ext.fly(el).getStyle(_71);},compile:function(_72,_73){_73=_73||"select";var fn=["var f = function(root){\n var mode; ++batch; var n = root || document;\n"];var q=_72,_76,lq;var tk=Ext.DomQuery.matchers;var _79=tk.length;var mm;var _7b=q.match(_7);if(_7b&&_7b[1]){fn[fn.length]="mode=\""+_7b[1].replace(_5,"")+"\";";q=q.replace(_7b[1],"");}while(_72.substr(0,1)=="/"){_72=_72.substr(1);}while(q&&lq!=q){lq=q;var tm=q.match(_8);if(_73=="select"){if(tm){if(tm[1]=="#"){fn[fn.length]="n = quickId(n, mode, root, \""+tm[2]+"\");";}else{fn[fn.length]="n = getNodes(n, mode, \""+tm[2]+"\");";}q=q.replace(tm[0],"");}else{if(q.substr(0,1)!="@"){fn[fn.length]="n = getNodes(n, mode, \"*\");";}}}else{if(tm){if(tm[1]=="#"){fn[fn.length]="n = byId(n, null, \""+tm[2]+"\");";}else{fn[fn.length]="n = byTag(n, \""+tm[2]+"\");";}q=q.replace(tm[0],"");}}while(!(mm=q.match(_7))){var _7d=false;for(var j=0;j<_79;j++){var t=tk[j];var m=q.match(t.re);if(m){fn[fn.length]=t.select.replace(_6,function(x,i){return m[i];});q=q.replace(m[0],"");_7d=true;break;}}if(!_7d){throw"Error parsing selector, parsing failed at \""+q+"\"";}}if(mm[1]){fn[fn.length]="mode=\""+mm[1].replace(_5,"")+"\";";q=q.replace(mm[1],"");}}fn[fn.length]="return nodup(n);\n}";eval(fn.join(""));return f;},select:function(_83,_84,_85){if(!_84||_84==document){_84=document;}if(typeof _84=="string"){_84=document.getElementById(_84);}var _86=_83.split(",");var _87=[];for(var i=0,len=_86.length;i<len;i++){var p=_86[i].replace(_5,"");if(!_1[p]){_1[p]=Ext.DomQuery.compile(p);if(!_1[p]){throw p+" is not a valid selector";}}var _8b=_1[p](_84);if(_8b&&_8b!=document){_87=_87.concat(_8b);}}if(_86.length>1){return nodup(_87);}return _87;},selectNode:function(_8c,_8d){return Ext.DomQuery.select(_8c,_8d)[0];},selectValue:function(_8e,_8f,_90){_8e=_8e.replace(_5,"");if(!_3[_8e]){_3[_8e]=Ext.DomQuery.compile(_8e,"select");}var n=_3[_8e](_8f);n=n[0]?n[0]:n;var v=(n&&n.firstChild?n.firstChild.nodeValue:null);return((v===null||v===undefined||v==="")?_90:v);},selectNumber:function(_93,_94,_95){var v=Ext.DomQuery.selectValue(_93,_94,_95||0);return parseFloat(v);},is:function(el,ss){if(typeof el=="string"){el=document.getElementById(el);}var _99=(el instanceof Array);var _9a=Ext.DomQuery.filter(_99?el:[el],ss);return _99?(_9a.length==el.length):(_9a.length>0);},filter:function(els,ss,_9d){ss=ss.replace(_5,"");if(!_2[ss]){_2[ss]=Ext.DomQuery.compile(ss,"simple");}var _9e=_2[ss](els);return _9d?quickDiff(_9e,els):_9e;},matchers:[{re:/^\.([\w-]+)/,select:"n = byClassName(n, null, \" {1} \");"},{re:/^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:"n = byPseudo(n, \"{1}\", \"{2}\");"},{re:/^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:"n = byAttribute(n, \"{2}\", \"{4}\", \"{3}\", \"{1}\");"},{re:/^#([\w-]+)/,select:"n = byId(n, null, \"{1}\");"},{re:/^@([\w-]+)/,select:"return {firstChild:{nodeValue:attrValue(n, \"{1}\")}};"}],operators:{"=":function(a,v){return a==v;},"!=":function(a,v){return a!=v;},"^=":function(a,v){return a&&a.substr(0,v.length)==v;},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v;},"*=":function(a,v){return a&&a.indexOf(v)!==-1;},"%=":function(a,v){return(a%v)==0;},"|=":function(a,v){return a&&(a==v||a.substr(0,v.length+1)==v+"-");},"~=":function(a,v){return a&&(" "+a+" ").indexOf(" "+v+" ")!=-1;}},pseudos:{"first-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci;}}return r;},"last-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci;}}return r;},"nth-child":function(c,a){var r=[],ri=-1;var m=_9.exec(a=="even"&&"2n"||a=="odd"&&"2n+1"||!_a.test(a)&&"n+"+a||a);var f=(m[1]||1)-0,l=m[2]-0;for(var i=0,n;n=c[i];i++){var pn=n.parentNode;if(batch!=pn._batch){var j=0;for(var cn=pn.firstChild;cn;cn=cn.nextSibling){if(cn.nodeType==1){cn.nodeIndex=++j;}}pn._batch=batch;}if(f==1){if(l==0||n.nodeIndex==l){r[++ri]=n;}}else{if((n.nodeIndex+l)%f==0){r[++ri]=n;}}}return r;},"only-child":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(!prev(ci)&&!next(ci)){r[++ri]=ci;}}return r;},"empty":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var cns=ci.childNodes,j=0,cn,_d4=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){_d4=false;break;}}if(_d4){r[++ri]=ci;}}return r;},"contains":function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if((ci.textContent||ci.innerText||"").indexOf(v)!=-1){r[++ri]=ci;}}return r;},"nodeValue":function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.firstChild&&ci.firstChild.nodeValue==v){r[++ri]=ci;}}return r;},"checked":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.checked==true){r[++ri]=ci;}}return r;},"not":function(c,ss){return Ext.DomQuery.filter(c,ss,true);},"odd":function(c){return this["nth-child"](c,"odd");},"even":function(c){return this["nth-child"](c,"even");},"nth":function(c,a){return c[a-1]||[];},"first":function(c){return c[0]||[];},"last":function(c){return c[c.length-1]||[];},"has":function(c,ss){var s=Ext.DomQuery.select;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(s(ss,ci).length>0){r[++ri]=ci;}}return r;},"next":function(c,ss){var is=Ext.DomQuery.is;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&&is(n,ss)){r[++ri]=ci;}}return r;},"prev":function(c,ss){var is=Ext.DomQuery.is;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&&is(n,ss)){r[++ri]=ci;}}return r;}}};}();Ext.query=Ext.DomQuery.select;



Ext.util.Observable=function(){if(this.listeners){this.on(this.listeners);delete this.listeners;}};Ext.util.Observable.prototype={fireEvent:function(){var ce=this.events[arguments[0].toLowerCase()];if(typeof ce=="object"){return ce.fire.apply(ce,Array.prototype.slice.call(arguments,1));}else{return true;}},filterOptRe:/^(?:scope|delay|buffer|single)$/,addListener:function(_2,fn,_4,o){if(typeof _2=="object"){o=_2;for(var e in o){if(this.filterOptRe.test(e)){continue;}if(typeof o[e]=="function"){this.addListener(e,o[e],o.scope,o);}else{this.addListener(e,o[e].fn,o[e].scope,o[e]);}}return;}o=(!o||typeof o=="boolean")?{}:o;_2=_2.toLowerCase();var ce=this.events[_2]||true;if(typeof ce=="boolean"){ce=new Ext.util.Event(this,_2);this.events[_2]=ce;}ce.addListener(fn,_4,o);},removeListener:function(_8,fn,_a){var ce=this.events[_8.toLowerCase()];if(typeof ce=="object"){ce.removeListener(fn,_a);}},purgeListeners:function(){for(var _c in this.events){if(typeof this.events[_c]=="object"){this.events[_c].clearListeners();}}},relayEvents:function(o,_e){var _f=function(_10){return function(){return this.fireEvent.apply(this,Ext.combine(_10,Array.prototype.slice.call(arguments,0)));};};for(var i=0,len=_e.length;i<len;i++){var _13=_e[i];if(!this.events[_13]){this.events[_13]=true;}o.on(_13,_f(_13),this);}},addEvents:function(o){if(!this.events){this.events={};}Ext.applyIf(this.events,o);},hasListener:function(_15){var e=this.events[_15];return typeof e=="object"&&e.listeners.length>0;}};Ext.util.Observable.prototype.on=Ext.util.Observable.prototype.addListener;Ext.util.Observable.prototype.un=Ext.util.Observable.prototype.removeListener;Ext.util.Observable.capture=function(o,fn,_19){o.fireEvent=o.fireEvent.createInterceptor(fn,_19);};Ext.util.Observable.releaseCapture=function(o){o.fireEvent=Ext.util.Observable.prototype.fireEvent;};(function(){var _1b=function(h,o,_1e){var _1f=new Ext.util.DelayedTask();return function(){_1f.delay(o.buffer,h,_1e,Array.prototype.slice.call(arguments,0));};};var _20=function(h,e,fn,_24){return function(){e.removeListener(fn,_24);return h.apply(_24,arguments);};};var _25=function(h,o,_28){return function(){var _29=Array.prototype.slice.call(arguments,0);setTimeout(function(){h.apply(_28,_29);},o.delay||10);};};Ext.util.Event=function(obj,_2b){this.name=_2b;this.obj=obj;this.listeners=[];};Ext.util.Event.prototype={addListener:function(fn,_2d,_2e){var o=_2e||{};_2d=_2d||this.obj;if(!this.isListening(fn,_2d)){var l={fn:fn,scope:_2d,options:o};var h=fn;if(o.delay){h=_25(h,o,_2d);}if(o.single){h=_20(h,this,fn,_2d);}if(o.buffer){h=_1b(h,o,_2d);}l.fireFn=h;if(!this.firing){this.listeners.push(l);}else{this.listeners=this.listeners.slice(0);this.listeners.push(l);}}},findListener:function(fn,_33){_33=_33||this.obj;var ls=this.listeners;for(var i=0,len=ls.length;i<len;i++){var l=ls[i];if(l.fn==fn&&l.scope==_33){return i;}}return-1;},isListening:function(fn,_39){return this.findListener(fn,_39)!=-1;},removeListener:function(fn,_3b){var _3c;if((_3c=this.findListener(fn,_3b))!=-1){if(!this.firing){this.listeners.splice(_3c,1);}else{this.listeners=this.listeners.slice(0);this.listeners.splice(_3c,1);}return true;}return false;},clearListeners:function(){this.listeners=[];},fire:function(){var ls=this.listeners,_3e,len=ls.length;if(len>0){this.firing=true;var _40=Array.prototype.slice.call(arguments,0);for(var i=0;i<len;i++){var l=ls[i];if(l.fireFn.apply(l.scope||this.obj||window,arguments)===false){this.firing=false;return false;}}this.firing=false;}return true;}};})();



Ext.EventManager=function(){var _1,_2,_3=false;var _4,_5,_6,_7;var E=Ext.lib.Event;var D=Ext.lib.Dom;var _a=function(){if(!_3){_3=true;Ext.isReady=true;if(_2){clearInterval(_2);}if(Ext.isGecko||Ext.isOpera){document.removeEventListener("DOMContentLoaded",_a,false);}if(_1){_1.fire();_1.clearListeners();}}};var _b=function(){_1=new Ext.util.Event();if(Ext.isGecko||Ext.isOpera){document.addEventListener("DOMContentLoaded",_a,false);}else{if(Ext.isIE){document.write("<s"+"cript id=\"ie-deferred-loader\" defer=\"defer\" src=\"/"+"/:\"></s"+"cript>");var _c=document.getElementById("ie-deferred-loader");_c.onreadystatechange=function(){if(this.readyState=="complete"){_a();_c.onreadystatechange=null;_c.parentNode.removeChild(_c);}};}else{if(Ext.isSafari){_2=setInterval(function(){var rs=document.readyState;if(rs=="complete"){_a();}},10);}}}E.on(window,"load",_a);};var _e=function(h,o){var _11=new Ext.util.DelayedTask(h);return function(e){e=new Ext.EventObjectImpl(e);_11.delay(o.buffer,h,null,[e]);};};var _13=function(h,el,_16,fn){return function(e){Ext.EventManager.removeListener(el,_16,fn);h(e);};};var _19=function(h,o){return function(e){e=new Ext.EventObjectImpl(e);setTimeout(function(){h(e);},o.delay||10);};};var _1d=function(_1e,_1f,opt,fn,_22){var o=(!opt||typeof opt=="boolean")?{}:opt;fn=fn||o.fn;_22=_22||o.scope;var el=Ext.getDom(_1e);if(!el){throw"Error listening for \""+_1f+"\". Element \""+_1e+"\" doesn't exist.";}var h=function(e){e=Ext.EventObject.setEvent(e);var t;if(o.delegate){t=e.getTarget(o.delegate,el);if(!t){return;}}else{t=e.target;}if(o.stopEvent===true){e.stopEvent();}if(o.preventDefault===true){e.preventDefault();}if(o.stopPropagation===true){e.stopPropagation();}if(o.normalized===false){e=e.browserEvent;}fn.call(_22||el,e,t,o);};if(o.delay){h=_19(h,o);}if(o.single){h=_13(h,el,_1f,fn);}if(o.buffer){h=_e(h,o);}fn._handlers=fn._handlers||[];fn._handlers.push([Ext.id(el),_1f,h]);E.on(el,_1f,h);if(_1f=="mousewheel"&&el.addEventListener){el.addEventListener("DOMMouseScroll",h,false);E.on(window,"unload",function(){el.removeEventListener("DOMMouseScroll",h,false);});}if(_1f=="mousedown"&&el==document){Ext.EventManager.stoppedMouseDownEvent.addListener(h);}return h;};var _28=function(el,_2a,fn){var id=Ext.id(el),hds=fn._handlers,hd=fn;if(hds){for(var i=0,len=hds.length;i<len;i++){var h=hds[i];if(h[0]==id&&h[1]==_2a){hd=h[2];hds.splice(i,1);break;}}}E.un(el,_2a,hd);el=Ext.getDom(el);if(_2a=="mousewheel"&&el.addEventListener){el.removeEventListener("DOMMouseScroll",hd,false);}if(_2a=="mousedown"&&el==document){Ext.EventManager.stoppedMouseDownEvent.removeListener(hd);}};var _32=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/;var pub={wrap:function(fn,_35,_36){return function(e){Ext.EventObject.setEvent(e);fn.call(_36?_35||window:window,Ext.EventObject,_35);};},addListener:function(_38,_39,fn,_3b,_3c){if(typeof _39=="object"){var o=_39;for(var e in o){if(_32.test(e)){continue;}if(typeof o[e]=="function"){_1d(_38,e,o,o[e],o.scope);}else{_1d(_38,e,o[e]);}}return;}return _1d(_38,_39,_3c,fn,_3b);},removeListener:function(_3f,_40,fn){return _28(_3f,_40,fn);},onDocumentReady:function(fn,_43,_44){if(_3){fn.call(_43||window,_43);return;}if(!_1){_b();}_1.addListener(fn,_43,_44);},onWindowResize:function(fn,_46,_47){if(!_4){_4=new Ext.util.Event();_5=new Ext.util.DelayedTask(function(){_4.fire(D.getViewWidth(),D.getViewHeight());});E.on(window,"resize",function(){if(Ext.isIE){_5.delay(50);}else{_4.fire(D.getViewWidth(),D.getViewHeight());}});}_4.addListener(fn,_46,_47);},onTextResize:function(fn,_49,_4a){if(!_6){_6=new Ext.util.Event();var _4b=new Ext.Element(document.createElement("div"));_4b.dom.className="x-text-resize";_4b.dom.innerHTML="X";_4b.appendTo(document.body);_7=_4b.dom.offsetHeight;setInterval(function(){if(_4b.dom.offsetHeight!=_7){_6.fire(_7,_7=_4b.dom.offsetHeight);}},this.textResizeInterval);}_6.addListener(fn,_49,_4a);},removeResizeListener:function(fn,_4d){if(_4){_4.removeListener(fn,_4d);}},fireResize:function(){if(_4){_4.fire(D.getViewWidth(),D.getViewHeight());}},ieDeferSrc:false,textResizeInterval:50};pub.on=pub.addListener;pub.un=pub.removeListener;pub.stoppedMouseDownEvent=new Ext.util.Event();return pub;}();Ext.onReady=Ext.EventManager.onDocumentReady;Ext.onReady(function(){var bd=Ext.get(document.body);if(!bd){return;}var cls=[Ext.isIE?"ext-ie":Ext.isGecko?"ext-gecko":Ext.isOpera?"ext-opera":Ext.isSafari?"ext-safari":""];if(Ext.isMac){cls.push("ext-mac");}if(Ext.isLinux){cls.push("ext-linux");}if(Ext.isBorderBox){cls.push("ext-border-box");}if(Ext.isStrict){var p=bd.dom.parentNode;if(p){p.className=p.className?" ext-strict":"ext-strict";}}bd.addClass(cls.join(" "));});Ext.EventObject=function(){var E=Ext.lib.Event;var _52={63234:37,63235:39,63232:38,63233:40,63276:33,63277:34,63272:46,63273:36,63275:35};var _53=Ext.isIE?{1:0,4:1,2:2}:(Ext.isSafari?{1:0,2:1,3:2}:{0:0,1:1,2:2});Ext.EventObjectImpl=function(e){if(e){this.setEvent(e.browserEvent||e);}};Ext.EventObjectImpl.prototype={browserEvent:null,button:-1,shiftKey:false,ctrlKey:false,altKey:false,BACKSPACE:8,TAB:9,RETURN:13,ENTER:13,SHIFT:16,CONTROL:17,ESC:27,SPACE:32,PAGEUP:33,PAGEDOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46,F5:116,setEvent:function(e){if(e==this||(e&&e.browserEvent)){return e;}this.browserEvent=e;if(e){this.button=e.button?_53[e.button]:(e.which?e.which-1:-1);if(e.type=="click"&&this.button==-1){this.button=0;}this.type=e.type;this.shiftKey=e.shiftKey;this.ctrlKey=e.ctrlKey||e.metaKey;this.altKey=e.altKey;this.keyCode=e.keyCode;this.charCode=e.charCode;this.target=E.getTarget(e);this.xy=E.getXY(e);}else{this.button=-1;this.shiftKey=false;this.ctrlKey=false;this.altKey=false;this.keyCode=0;this.charCode=0;this.target=null;this.xy=[0,0];}return this;},stopEvent:function(){if(this.browserEvent){if(this.browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(this);}E.stopEvent(this.browserEvent);}},preventDefault:function(){if(this.browserEvent){E.preventDefault(this.browserEvent);}},isNavKeyPress:function(){var k=this.keyCode;k=Ext.isSafari?(_52[k]||k):k;return(k>=33&&k<=40)||k==this.RETURN||k==this.TAB||k==this.ESC;},isSpecialKey:function(){var k=this.keyCode;return(this.type=="keypress"&&this.ctrlKey)||k==9||k==13||k==40||k==27||(k==16)||(k==17)||(k>=18&&k<=20)||(k>=33&&k<=35)||(k>=36&&k<=39)||(k>=44&&k<=45);},stopPropagation:function(){if(this.browserEvent){if(this.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(this);}E.stopPropagation(this.browserEvent);}},getCharCode:function(){return this.charCode||this.keyCode;},getKey:function(){var k=this.keyCode||this.charCode;return Ext.isSafari?(_52[k]||k):k;},getPageX:function(){return this.xy[0];},getPageY:function(){return this.xy[1];},getTime:function(){if(this.browserEvent){return E.getTime(this.browserEvent);}return null;},getXY:function(){return this.xy;},getTarget:function(_59,_5a,_5b){return _59?Ext.fly(this.target).findParent(_59,_5a,_5b):this.target;},getRelatedTarget:function(){if(this.browserEvent){return E.getRelatedTarget(this.browserEvent);}return null;},getWheelDelta:function(){var e=this.browserEvent;var _5d=0;if(e.wheelDelta){_5d=e.wheelDelta/120;if(window.opera){_5d=-_5d;}}else{if(e.detail){_5d=-e.detail/3;}}return _5d;},hasModifier:function(){return!!((this.ctrlKey||this.altKey)||this.shiftKey);},within:function(el,_5f){var t=this[_5f?"getRelatedTarget":"getTarget"]();return t&&Ext.fly(el).contains(t);},getPoint:function(){return new Ext.lib.Point(this.xy[0],this.xy[1]);}};return new Ext.EventObjectImpl();}();



(function(){var D=Ext.lib.Dom;var E=Ext.lib.Event;var A=Ext.lib.Anim;var _4={};var _5=/(-[a-z])/gi;var _6=function(m,a){return a.charAt(1).toUpperCase();};var _9=document.defaultView;Ext.Element=function(_a,_b){var _c=typeof _a=="string"?document.getElementById(_a):_a;if(!_c){return null;}var id=_c.id;if(_b!==true&&id&&Ext.Element.cache[id]){return Ext.Element.cache[id];}this.dom=_c;this.id=id||Ext.id(_c);};var El=Ext.Element;El.prototype={originalDisplay:"",visibilityMode:1,defaultUnit:"px",setVisibilityMode:function(_f){this.visibilityMode=_f;return this;},enableDisplayMode:function(_10){this.setVisibilityMode(El.DISPLAY);if(typeof _10!="undefined"){this.originalDisplay=_10;}return this;},findParent:function(_11,_12,_13){var p=this.dom,b=document.body,_16=0,dq=Ext.DomQuery,_18;_12=_12||50;if(typeof _12!="number"){_18=Ext.getDom(_12);_12=10;}while(p&&p.nodeType==1&&_16<_12&&p!=b&&p!=_18){if(dq.is(p,_11)){return _13?Ext.get(p):p;}_16++;p=p.parentNode;}return null;},findParentNode:function(_19,_1a,_1b){var p=Ext.fly(this.dom.parentNode,"_internal");return p?p.findParent(_19,_1a,_1b):null;},up:function(_1d,_1e){return this.findParentNode(_1d,_1e,true);},is:function(_1f){return Ext.DomQuery.is(this.dom,_1f);},animate:function(_20,_21,_22,_23,_24){this.anim(_20,{duration:_21,callback:_22,easing:_23},_24);return this;},anim:function(_25,opt,_27,_28,_29,cb){_27=_27||"run";opt=opt||{};var _2b=Ext.lib.Anim[_27](this.dom,_25,(opt.duration||_28)||0.35,(opt.easing||_29)||"easeOut",function(){Ext.callback(cb,this);Ext.callback(opt.callback,opt.scope||this,[this,opt]);},this);opt.anim=_2b;return _2b;},preanim:function(a,i){return!a[i]?false:(typeof a[i]=="object"?a[i]:{duration:a[i+1],callback:a[i+2],easing:a[i+3]});},clean:function(_2e){if(this.isCleaned&&_2e!==true){return this;}var ns=/\S/;var d=this.dom,n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!ns.test(n.nodeValue)){d.removeChild(n);}else{n.nodeIndex=++ni;}n=nx;}this.isCleaned=true;return this;},calcOffsetsTo:function(el){el=Ext.get(el);var d=el.dom;var _36=false;if(el.getStyle("position")=="static"){el.position("relative");_36=true;}var x=0,y=0;var op=this.dom;while(op&&op!=d&&op.tagName!="HTML"){x+=op.offsetLeft;y+=op.offsetTop;op=op.offsetParent;}if(_36){el.position("static");}return[x,y];},scrollIntoView:function(_3a,_3b){var c=Ext.getDom(_3a)||document.body;var el=this.dom;var o=this.calcOffsetsTo(c),l=o[0],t=o[1],b=t+el.offsetHeight,r=l+el.offsetWidth;var ch=c.clientHeight;var ct=parseInt(c.scrollTop,10);var cl=parseInt(c.scrollLeft,10);var cb=ct+ch;var cr=cl+c.clientWidth;if(t<ct){c.scrollTop=t;}else{if(b>cb){c.scrollTop=b-ch;}}if(_3b!==false){if(l<cl){c.scrollLeft=l;}else{if(r>cr){c.scrollLeft=r-c.clientWidth;}}}return this;},scrollChildIntoView:function(_48,_49){Ext.fly(_48,"_scrollChildIntoView").scrollIntoView(this,_49);},autoHeight:function(_4a,_4b,_4c,_4d){var _4e=this.getHeight();this.clip();this.setHeight(1);setTimeout(function(){var _4f=parseInt(this.dom.scrollHeight,10);if(!_4a){this.setHeight(_4f);this.unclip();if(typeof _4c=="function"){_4c();}}else{this.setHeight(_4e);this.setHeight(_4f,_4a,_4b,function(){this.unclip();if(typeof _4c=="function"){_4c();}}.createDelegate(this),_4d);}}.createDelegate(this),0);return this;},contains:function(el){if(!el){return false;}return D.isAncestor(this.dom,el.dom?el.dom:el);},isVisible:function(_51){var vis=!(this.getStyle("visibility")=="hidden"||this.getStyle("display")=="none");if(_51!==true||!vis){return vis;}var p=this.dom.parentNode;while(p&&p.tagName.toLowerCase()!="body"){if(!Ext.fly(p,"_isVisible").isVisible()){return false;}p=p.parentNode;}return true;},select:function(_54,_55){return El.select(_54,_55,this.dom);},query:function(_56,_57){return Ext.DomQuery.select(_56,this.dom);},child:function(_58,_59){var n=Ext.DomQuery.selectNode(_58,this.dom);return _59?n:Ext.get(n);},down:function(_5b,_5c){var n=Ext.DomQuery.selectNode(" > "+_5b,this.dom);return _5c?n:Ext.get(n);},initDD:function(_5e,_5f,_60){var dd=new Ext.dd.DD(Ext.id(this.dom),_5e,_5f);return Ext.apply(dd,_60);},initDDProxy:function(_62,_63,_64){var dd=new Ext.dd.DDProxy(Ext.id(this.dom),_62,_63);return Ext.apply(dd,_64);},initDDTarget:function(_66,_67,_68){var dd=new Ext.dd.DDTarget(Ext.id(this.dom),_66,_67);return Ext.apply(dd,_68);},setVisible:function(_6a,_6b){if(!_6b||!A){if(this.visibilityMode==El.DISPLAY){this.setDisplayed(_6a);}else{this.fixDisplay();this.dom.style.visibility=_6a?"visible":"hidden";}}else{var dom=this.dom;var _6d=this.visibilityMode;if(_6a){this.setOpacity(0.01);this.setVisible(true);}this.anim({opacity:{to:(_6a?1:0)}},this.preanim(arguments,1),null,0.35,"easeIn",function(){if(!_6a){if(_6d==El.DISPLAY){dom.style.display="none";}else{dom.style.visibility="hidden";}Ext.get(dom).setOpacity(1);}});}return this;},isDisplayed:function(){return this.getStyle("display")!="none";},toggle:function(_6e){this.setVisible(!this.isVisible(),this.preanim(arguments,0));return this;},setDisplayed:function(_6f){if(typeof _6f=="boolean"){_6f=_6f?this.originalDisplay:"none";}this.setStyle("display",_6f);return this;},focus:function(){try{this.dom.focus();}catch(e){}return this;},blur:function(){try{this.dom.blur();}catch(e){}return this;},addClass:function(_70){if(_70 instanceof Array){for(var i=0,len=_70.length;i<len;i++){this.addClass(_70[i]);}}else{if(_70&&!this.hasClass(_70)){this.dom.className=this.dom.className+" "+_70;}}return this;},radioClass:function(_73){var _74=this.dom.parentNode.childNodes;for(var i=0;i<_74.length;i++){var s=_74[i];if(s.nodeType==1){Ext.get(s).removeClass(_73);}}this.addClass(_73);return this;},removeClass:function(_77){if(!_77||!this.dom.className){return this;}if(_77 instanceof Array){for(var i=0,len=_77.length;i<len;i++){this.removeClass(_77[i]);}}else{if(this.hasClass(_77)){var re=this.classReCache[_77];if(!re){re=new RegExp("(?:^|\\s+)"+_77+"(?:\\s+|$)","g");this.classReCache[_77]=re;}this.dom.className=this.dom.className.replace(re," ");}}return this;},classReCache:{},toggleClass:function(_7b){if(this.hasClass(_7b)){this.removeClass(_7b);}else{this.addClass(_7b);}return this;},hasClass:function(_7c){return _7c&&(" "+this.dom.className+" ").indexOf(" "+_7c+" ")!=-1;},replaceClass:function(_7d,_7e){this.removeClass(_7d);this.addClass(_7e);return this;},getStyles:function(){var a=arguments,len=a.length,r={};for(var i=0;i<len;i++){r[a[i]]=this.getStyle(a[i]);}return r;},getStyle:function(){return _9&&_9.getComputedStyle?function(_83){var el=this.dom,v,cs,_87;if(_83=="float"){_83="cssFloat";}if(v=el.style[_83]){return v;}if(cs=_9.getComputedStyle(el,"")){if(!(_87=_4[_83])){_87=_4[_83]=_83.replace(_5,_6);}return cs[_87];}return null;}:function(_88){var el=this.dom,v,cs,_8c;if(_88=="opacity"){if(typeof el.style.filter=="string"){var m=el.style.filter.match(/alpha\(opacity=(.*)\)/i);if(m){var fv=parseFloat(m[1]);if(!isNaN(fv)){return fv?fv/100:0;}}}return 1;}else{if(_88=="float"){_88="styleFloat";}}if(!(_8c=_4[_88])){_8c=_4[_88]=_88.replace(_5,_6);}if(v=el.style[_8c]){return v;}if(cs=el.currentStyle){return cs[_8c];}return null;};}(),setStyle:function(_8f,_90){if(typeof _8f=="string"){var _91;if(!(_91=_4[_8f])){_91=_4[_8f]=_8f.replace(_5,_6);}if(_91=="opacity"){this.setOpacity(_90);}else{this.dom.style[_91]=_90;}}else{for(var _92 in _8f){if(typeof _8f[_92]!="function"){this.setStyle(_92,_8f[_92]);}}}return this;},applyStyles:function(_93){Ext.DomHelper.applyStyles(this.dom,_93);return this;},getX:function(){return D.getX(this.dom);},getY:function(){return D.getY(this.dom);},getXY:function(){return D.getXY(this.dom);},setX:function(x,_95){if(!_95||!A){D.setX(this.dom,x);}else{this.setXY([x,this.getY()],this.preanim(arguments,1));}return this;},setY:function(y,_97){if(!_97||!A){D.setY(this.dom,y);}else{this.setXY([this.getX(),y],this.preanim(arguments,1));}return this;},setLeft:function(_98){this.setStyle("left",this.addUnits(_98));return this;},setTop:function(top){this.setStyle("top",this.addUnits(top));return this;},setRight:function(_9a){this.setStyle("right",this.addUnits(_9a));return this;},setBottom:function(_9b){this.setStyle("bottom",this.addUnits(_9b));return this;},setXY:function(pos,_9d){if(!_9d||!A){D.setXY(this.dom,pos);}else{this.anim({points:{to:pos}},this.preanim(arguments,1),"motion");}return this;},setLocation:function(x,y,_a0){this.setXY([x,y],this.preanim(arguments,2));return this;},moveTo:function(x,y,_a3){this.setXY([x,y],this.preanim(arguments,2));return this;},getRegion:function(){return D.getRegion(this.dom);},getHeight:function(_a4){var h=this.dom.offsetHeight||0;return _a4!==true?h:h-this.getBorderWidth("tb")-this.getPadding("tb");},getWidth:function(_a6){var w=this.dom.offsetWidth||0;return _a6!==true?w:w-this.getBorderWidth("lr")-this.getPadding("lr");},getComputedHeight:function(){var h=Math.max(this.dom.offsetHeight,this.dom.clientHeight);if(!h){h=parseInt(this.getStyle("height"),10)||0;if(!this.isBorderBox()){h+=this.getFrameWidth("tb");}}return h;},getComputedWidth:function(){var w=Math.max(this.dom.offsetWidth,this.dom.clientWidth);if(!w){w=parseInt(this.getStyle("width"),10)||0;if(!this.isBorderBox()){w+=this.getFrameWidth("lr");}}return w;},getSize:function(_aa){return{width:this.getWidth(_aa),height:this.getHeight(_aa)};},getViewSize:function(){var d=this.dom,doc=document,aw=0,ah=0;if(d==doc||d==doc.body){return{width:D.getViewWidth(),height:D.getViewHeight()};}else{return{width:d.clientWidth,height:d.clientHeight};}},getValue:function(_af){return _af?parseInt(this.dom.value,10):this.dom.value;},adjustWidth:function(_b0){if(typeof _b0=="number"){if(this.autoBoxAdjust&&!this.isBorderBox()){_b0-=(this.getBorderWidth("lr")+this.getPadding("lr"));}if(_b0<0){_b0=0;}}return _b0;},adjustHeight:function(_b1){if(typeof _b1=="number"){if(this.autoBoxAdjust&&!this.isBorderBox()){_b1-=(this.getBorderWidth("tb")+this.getPadding("tb"));}if(_b1<0){_b1=0;}}return _b1;},setWidth:function(_b2,_b3){_b2=this.adjustWidth(_b2);if(!_b3||!A){this.dom.style.width=this.addUnits(_b2);}else{this.anim({width:{to:_b2}},this.preanim(arguments,1));}return this;},setHeight:function(_b4,_b5){_b4=this.adjustHeight(_b4);if(!_b5||!A){this.dom.style.height=this.addUnits(_b4);}else{this.anim({height:{to:_b4}},this.preanim(arguments,1));}return this;},setSize:function(_b6,_b7,_b8){if(typeof _b6=="object"){_b7=_b6.height;_b6=_b6.width;}_b6=this.adjustWidth(_b6);_b7=this.adjustHeight(_b7);if(!_b8||!A){this.dom.style.width=this.addUnits(_b6);this.dom.style.height=this.addUnits(_b7);}else{this.anim({width:{to:_b6},height:{to:_b7}},this.preanim(arguments,2));}return this;},setBounds:function(x,y,_bb,_bc,_bd){if(!_bd||!A){this.setSize(_bb,_bc);this.setLocation(x,y);}else{_bb=this.adjustWidth(_bb);_bc=this.adjustHeight(_bc);this.anim({points:{to:[x,y]},width:{to:_bb},height:{to:_bc}},this.preanim(arguments,4),"motion");}return this;},setRegion:function(_be,_bf){this.setBounds(_be.left,_be.top,_be.right-_be.left,_be.bottom-_be.top,this.preanim(arguments,1));return this;},addListener:function(_c0,fn,_c2,_c3){Ext.EventManager.on(this.dom,_c0,fn,_c2||this,_c3);},removeListener:function(_c4,fn){Ext.EventManager.removeListener(this.dom,_c4,fn);return this;},removeAllListeners:function(){E.purgeElement(this.dom);return this;},relayEvent:function(_c6,_c7){this.on(_c6,function(e){_c7.fireEvent(_c6,e);});},setOpacity:function(_c9,_ca){if(!_ca||!A){var s=this.dom.style;if(Ext.isIE){s.zoom=1;s.filter=(s.filter||"").replace(/alpha\([^\)]*\)/gi,"")+(_c9==1?"":"alpha(opacity="+_c9*100+")");}else{s.opacity=_c9;}}else{this.anim({opacity:{to:_c9}},this.preanim(arguments,1),null,0.35,"easeIn");}return this;},getLeft:function(_cc){if(!_cc){return this.getX();}else{return parseInt(this.getStyle("left"),10)||0;}},getRight:function(_cd){if(!_cd){return this.getX()+this.getWidth();}else{return(this.getLeft(true)+this.getWidth())||0;}},getTop:function(_ce){if(!_ce){return this.getY();}else{return parseInt(this.getStyle("top"),10)||0;}},getBottom:function(_cf){if(!_cf){return this.getY()+this.getHeight();}else{return(this.getTop(true)+this.getHeight())||0;}},position:function(pos,_d1,x,y){if(!pos){if(this.getStyle("position")=="static"){this.setStyle("position","relative");}}else{this.setStyle("position",pos);}if(_d1){this.setStyle("z-index",_d1);}if(x!==undefined&&y!==undefined){this.setXY([x,y]);}else{if(x!==undefined){this.setX(x);}else{if(y!==undefined){this.setY(y);}}}},clearPositioning:function(_d4){_d4=_d4||"";this.setStyle({"left":_d4,"right":_d4,"top":_d4,"bottom":_d4,"z-index":"","position":"static"});return this;},getPositioning:function(){var l=this.getStyle("left");var t=this.getStyle("top");return{"position":this.getStyle("position"),"left":l,"right":l?"":this.getStyle("right"),"top":t,"bottom":t?"":this.getStyle("bottom"),"z-index":this.getStyle("z-index")};},getBorderWidth:function(_d7){return this.addStyles(_d7,El.borders);},getPadding:function(_d8){return this.addStyles(_d8,El.paddings);},setPositioning:function(pc){this.applyStyles(pc);if(pc.right=="auto"){this.dom.style.right="";}if(pc.bottom=="auto"){this.dom.style.bottom="";}return this;},fixDisplay:function(){if(this.getStyle("display")=="none"){this.setStyle("visibility","hidden");this.setStyle("display",this.originalDisplay);if(this.getStyle("display")=="none"){this.setStyle("display","block");}}},setLeftTop:function(_da,top){this.dom.style.left=this.addUnits(_da);this.dom.style.top=this.addUnits(top);return this;},move:function(_dc,_dd,_de){var xy=this.getXY();_dc=_dc.toLowerCase();switch(_dc){case"l":case"left":this.moveTo(xy[0]-_dd,xy[1],this.preanim(arguments,2));break;case"r":case"right":this.moveTo(xy[0]+_dd,xy[1],this.preanim(arguments,2));break;case"t":case"top":case"up":this.moveTo(xy[0],xy[1]-_dd,this.preanim(arguments,2));break;case"b":case"bottom":case"down":this.moveTo(xy[0],xy[1]+_dd,this.preanim(arguments,2));break;}return this;},clip:function(){if(!this.isClipped){this.isClipped=true;this.originalClip={"o":this.getStyle("overflow"),"x":this.getStyle("overflow-x"),"y":this.getStyle("overflow-y")};this.setStyle("overflow","hidden");this.setStyle("overflow-x","hidden");this.setStyle("overflow-y","hidden");}return this;},unclip:function(){if(this.isClipped){this.isClipped=false;var o=this.originalClip;if(o.o){this.setStyle("overflow",o.o);}if(o.x){this.setStyle("overflow-x",o.x);}if(o.y){this.setStyle("overflow-y",o.y);}}return this;},getAnchorXY:function(_e1,_e2,s){var w,h,vp=false;if(!s){var d=this.dom;if(d==document.body||d==document){vp=true;w=D.getViewWidth();h=D.getViewHeight();}else{w=this.getWidth();h=this.getHeight();}}else{w=s.width;h=s.height;}var x=0,y=0,r=Math.round;switch((_e1||"tl").toLowerCase()){case"c":x=r(w*0.5);y=r(h*0.5);break;case"t":x=r(w*0.5);y=0;break;case"l":x=0;y=r(h*0.5);break;case"r":x=w;y=r(h*0.5);break;case"b":x=r(w*0.5);y=h;break;case"tl":x=0;y=0;break;case"bl":x=0;y=h;break;case"br":x=w;y=h;break;case"tr":x=w;y=0;break;}if(_e2===true){return[x,y];}if(vp){var sc=this.getScroll();return[x+sc.left,y+sc.top];}var o=this.getXY();return[x+o[0],y+o[1]];},getAlignToXY:function(el,p,o){el=Ext.get(el);var d=this.dom;if(!el.dom){throw"Element.alignTo with an element that doesn't exist";}var c=false;var p1="",p2="";o=o||[0,0];if(!p){p="tl-bl";}else{if(p=="?"){p="tl-bl?";}else{if(p.indexOf("-")==-1){p="tl-"+p;}}}p=p.toLowerCase();var m=p.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!m){throw"Element.alignTo with an invalid alignment "+p;}p1=m[1];p2=m[2];c=!!m[3];var a1=this.getAnchorXY(p1,true);var a2=el.getAnchorXY(p2,false);var x=a2[0]-a1[0]+o[0];var y=a2[1]-a1[1]+o[1];if(c){var w=this.getWidth(),h=this.getHeight(),r=el.getRegion();var dw=D.getViewWidth()-5,dh=D.getViewHeight()-5;var p1y=p1.charAt(0),p1x=p1.charAt(p1.length-1);var p2y=p2.charAt(0),p2x=p2.charAt(p2.length-1);var _102=((p1y=="t"&&p2y=="b")||(p1y=="b"&&p2y=="t"));var _103=((p1x=="r"&&p2x=="l")||(p1x=="l"&&p2x=="r"));var doc=document;var _105=(doc.documentElement.scrollLeft||doc.body.scrollLeft||0)+5;var _106=(doc.documentElement.scrollTop||doc.body.scrollTop||0)+5;if((x+w)>dw+_105){x=_103?r.left-w:dw+_105-w;}if(x<_105){x=_103?r.right:_105;}if((y+h)>dh+_106){y=_102?r.top-h:dh+_106-h;}if(y<_106){y=_102?r.bottom:_106;}}return[x,y];},getConstrainToXY:function(){var os={top:0,left:0,bottom:0,right:0};return function(el,_109,_10a,_10b){el=Ext.get(el);_10a=_10a?Ext.applyIf(_10a,os):os;var vw,vh,vx=0,vy=0;if(el.dom==document.body||el.dom==document){vw=Ext.lib.Dom.getViewWidth();vh=Ext.lib.Dom.getViewHeight();}else{vw=el.dom.clientWidth;vh=el.dom.clientHeight;if(!_109){var vxy=el.getXY();vx=vxy[0];vy=vxy[1];}}var s=el.getScroll();vx+=_10a.left+s.left;vy+=_10a.top+s.top;vw-=_10a.right;vh-=_10a.bottom;var vr=vx+vw;var vb=vy+vh;var xy=_10b||(!_109?this.getXY():[this.getLeft(true),this.getTop(true)]);var x=xy[0],y=xy[1];var w=this.dom.offsetWidth,h=this.dom.offsetHeight;var _119=false;if((x+w)>vr){x=vr-w;_119=true;}if((y+h)>vb){y=vb-h;_119=true;}if(x<vx){x=vx;_119=true;}if(y<vy){y=vy;_119=true;}return _119?[x,y]:false;};}(),adjustForConstraints:function(xy,_11b,_11c){return this.getConstrainToXY(_11b||document,false,_11c,xy)||xy;},alignTo:function(_11d,_11e,_11f,_120){var xy=this.getAlignToXY(_11d,_11e,_11f);this.setXY(xy,this.preanim(arguments,3));return this;},anchorTo:function(el,_123,_124,_125,_126,_127){var _128=function(){this.alignTo(el,_123,_124,_125);Ext.callback(_127,this);};Ext.EventManager.onWindowResize(_128,this);var tm=typeof _126;if(tm!="undefined"){Ext.EventManager.on(window,"scroll",_128,this,{buffer:tm=="number"?_126:50});}_128.call(this);return this;},clearOpacity:function(){if(window.ActiveXObject){if(typeof this.dom.style.filter=="string"&&(/alpha/i).test(this.dom.style.filter)){this.dom.style.filter="";}}else{this.dom.style.opacity="";this.dom.style["-moz-opacity"]="";this.dom.style["-khtml-opacity"]="";}return this;},hide:function(_12a){this.setVisible(false,this.preanim(arguments,0));return this;},show:function(_12b){this.setVisible(true,this.preanim(arguments,0));return this;},addUnits:function(size){return Ext.Element.addUnits(size,this.defaultUnit);},beginMeasure:function(){var el=this.dom;if(el.offsetWidth||el.offsetHeight){return this;}var _12e=[];var p=this.dom,b=document.body;while((!el.offsetWidth&&!el.offsetHeight)&&p&&p.tagName&&p!=b){var pe=Ext.get(p);if(pe.getStyle("display")=="none"){_12e.push({el:p,visibility:pe.getStyle("visibility")});p.style.visibility="hidden";p.style.display="block";}p=p.parentNode;}this._measureChanged=_12e;return this;},endMeasure:function(){var _132=this._measureChanged;if(_132){for(var i=0,len=_132.length;i<len;i++){var r=_132[i];r.el.style.visibility=r.visibility;r.el.style.display="none";}this._measureChanged=null;}return this;},update:function(html,_137,_138){if(typeof html=="undefined"){html="";}if(_137!==true){this.dom.innerHTML=html;if(typeof _138=="function"){_138();}return this;}var id=Ext.id();var dom=this.dom;html+="<span id=\""+id+"\"></span>";E.onAvailable(id,function(){var hd=document.getElementsByTagName("head")[0];var re=/(?:<script([^>]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig;var _13d=/\ssrc=([\'\"])(.*?)\1/i;var _13e=/\stype=([\'\"])(.*?)\1/i;var _13f;while(_13f=re.exec(html)){var _140=_13f[1];var _141=_140?_140.match(_13d):false;if(_141&&_141[2]){var s=document.createElement("script");s.src=_141[2];var _143=_140.match(_13e);if(_143&&_143[2]){s.type=_143[2];}hd.appendChild(s);}else{if(_13f[2]&&_13f[2].length>0){eval(_13f[2]);}}}var el=document.getElementById(id);if(el){el.parentNode.removeChild(el);}if(typeof _138=="function"){_138();}});dom.innerHTML=html.replace(/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,"");return this;},load:function(){var um=this.getUpdateManager();um.update.apply(um,arguments);return this;},getUpdateManager:function(){if(!this.updateManager){this.updateManager=new Ext.UpdateManager(this);}return this.updateManager;},unselectable:function(){this.dom.unselectable="on";this.swallowEvent("selectstart",true);this.applyStyles("-moz-user-select:none;-khtml-user-select:none;");this.addClass("x-unselectable");return this;},getCenterXY:function(){return this.getAlignToXY(document,"c-c");},center:function(_146){this.alignTo(_146||document,"c-c");return this;},isBorderBox:function(){return _147[this.dom.tagName.toLowerCase()]||Ext.isBorderBox;},getBox:function(_148,_149){var xy;if(!_149){xy=this.getXY();}else{var left=parseInt(this.getStyle("left"),10)||0;var top=parseInt(this.getStyle("top"),10)||0;xy=[left,top];}var el=this.dom,w=el.offsetWidth,h=el.offsetHeight,bx;if(!_148){bx={x:xy[0],y:xy[1],0:xy[0],1:xy[1],width:w,height:h};}else{var l=this.getBorderWidth("l")+this.getPadding("l");var r=this.getBorderWidth("r")+this.getPadding("r");var t=this.getBorderWidth("t")+this.getPadding("t");var b=this.getBorderWidth("b")+this.getPadding("b");bx={x:xy[0]+l,y:xy[1]+t,0:xy[0]+l,1:xy[1]+t,width:w-(l+r),height:h-(t+b)};}bx.right=bx.x+bx.width;bx.bottom=bx.y+bx.height;return bx;},getFrameWidth:function(_155,_156){return _156&&Ext.isBorderBox?0:(this.getPadding(_155)+this.getBorderWidth(_155));},setBox:function(box,_158,_159){var w=box.width,h=box.height;if((_158&&!this.autoBoxAdjust)&&!this.isBorderBox()){w-=(this.getBorderWidth("lr")+this.getPadding("lr"));h-=(this.getBorderWidth("tb")+this.getPadding("tb"));}this.setBounds(box.x,box.y,w,h,this.preanim(arguments,2));return this;},repaint:function(){var dom=this.dom;this.addClass("x-repaint");setTimeout(function(){Ext.get(dom).removeClass("x-repaint");},1);return this;},getMargins:function(side){if(!side){return{top:parseInt(this.getStyle("margin-top"),10)||0,left:parseInt(this.getStyle("margin-left"),10)||0,bottom:parseInt(this.getStyle("margin-bottom"),10)||0,right:parseInt(this.getStyle("margin-right"),10)||0};}else{return this.addStyles(side,El.margins);}},addStyles:function(_15e,_15f){var val=0,v,w;for(var i=0,len=_15e.length;i<len;i++){v=this.getStyle(_15f[_15e.charAt(i)]);if(v){w=parseInt(v,10);if(w){val+=w;}}}return val;},createProxy:function(_165,_166,_167){if(_166){_166=Ext.getDom(_166);}else{_166=document.body;}_165=typeof _165=="object"?_165:{tag:"div",cls:_165};var _168=Ext.DomHelper.append(_166,_165,true);if(_167){_168.setBox(this.getBox());}return _168;},mask:function(msg,_16a){if(this.getStyle("position")=="static"){this.setStyle("position","relative");}if(!this._mask){this._mask=Ext.DomHelper.append(this.dom,{cls:"ext-el-mask"},true);}this.addClass("x-masked");this._mask.setDisplayed(true);if(typeof msg=="string"){if(!this._maskMsg){this._maskMsg=Ext.DomHelper.append(this.dom,{cls:"ext-el-mask-msg",cn:{tag:"div"}},true);}var mm=this._maskMsg;mm.dom.className=_16a?"ext-el-mask-msg "+_16a:"ext-el-mask-msg";mm.dom.firstChild.innerHTML=msg;mm.setDisplayed(true);mm.center(this);}if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&this.getStyle("height")=="auto"){this._mask.setHeight(this.getHeight());}return this._mask;},unmask:function(_16c){if(this._mask){if(_16c===true){this._mask.remove();delete this._mask;if(this._maskMsg){this._maskMsg.remove();delete this._maskMsg;}}else{this._mask.setDisplayed(false);if(this._maskMsg){this._maskMsg.setDisplayed(false);}}}this.removeClass("x-masked");},isMasked:function(){return this._mask&&this._mask.isVisible();},createShim:function(){var el=document.createElement("iframe");el.frameBorder="no";el.className="ext-shim";if(Ext.isIE&&Ext.isSecure){el.src=Ext.SSL_SECURE_URL;}var shim=Ext.get(this.dom.parentNode.insertBefore(el,this.dom));shim.autoBoxAdjust=false;return shim;},remove:function(){if(this.dom.parentNode){this.dom.parentNode.removeChild(this.dom);}delete El.cache[this.dom.id];},addClassOnOver:function(_16f,_170){this.on("mouseover",function(){Ext.fly(this,"_internal").addClass(_16f);},this.dom);var _171=function(e){if(_170!==true||!e.within(this,true)){Ext.fly(this,"_internal").removeClass(_16f);}};this.on("mouseout",_171,this.dom);return this;},addClassOnFocus:function(_173){this.on("focus",function(){Ext.fly(this,"_internal").addClass(_173);},this.dom);this.on("blur",function(){Ext.fly(this,"_internal").removeClass(_173);},this.dom);return this;},addClassOnClick:function(_174){var dom=this.dom;this.on("mousedown",function(){Ext.fly(dom,"_internal").addClass(_174);var d=Ext.get(document);var fn=function(){Ext.fly(dom,"_internal").removeClass(_174);d.removeListener("mouseup",fn);};d.on("mouseup",fn);});return this;},swallowEvent:function(_178,_179){var fn=function(e){e.stopPropagation();if(_179){e.preventDefault();}};if(_178 instanceof Array){for(var i=0,len=_178.length;i<len;i++){this.on(_178[i],fn);}return this;}this.on(_178,fn);return this;},fitToParentDelegate:Ext.emptyFn,fitToParent:function(_17e,_17f){Ext.EventManager.removeResizeListener(this.fitToParentDelegate);this.fitToParentDelegate=Ext.emptyFn;if(_17e===true&&!this.dom.parentNode){return;}var p=Ext.get(_17f||this.dom.parentNode);this.setSize(p.getComputedWidth()-p.getFrameWidth("lr"),p.getComputedHeight()-p.getFrameWidth("tb"));if(_17e===true){this.fitToParentDelegate=this.fitToParent.createDelegate(this,[true,_17f]);Ext.EventManager.onWindowResize(this.fitToParentDelegate);}return this;},getNextSibling:function(){var n=this.dom.nextSibling;while(n&&n.nodeType!=1){n=n.nextSibling;}return n;},getPrevSibling:function(){var n=this.dom.previousSibling;while(n&&n.nodeType!=1){n=n.previousSibling;}return n;},appendChild:function(el){el=Ext.get(el);el.appendTo(this);return this;},createChild:function(_184,_185,_186){_184=_184||{tag:"div"};if(_185){return Ext.DomHelper.insertBefore(_185,_184,_186!==true);}return Ext.DomHelper[!this.dom.firstChild?"overwrite":"append"](this.dom,_184,_186!==true);},appendTo:function(el){el=Ext.getDom(el);el.appendChild(this.dom);return this;},insertBefore:function(el){el=Ext.getDom(el);el.parentNode.insertBefore(this.dom,el);return this;},insertAfter:function(el){el=Ext.getDom(el);el.parentNode.insertBefore(this.dom,el.nextSibling);return this;},insertFirst:function(el,_18b){el=el||{};if(typeof el=="object"&&!el.nodeType){return this.createChild(el,this.dom.firstChild,_18b);}else{el=Ext.getDom(el);this.dom.insertBefore(el,this.dom.firstChild);return!_18b?Ext.get(el):el;}},insertSibling:function(el,_18d,_18e){_18d=_18d?_18d.toLowerCase():"before";el=el||{};var rt,_190=_18d=="before"?this.dom:this.dom.nextSibling;if(typeof el=="object"&&!el.nodeType){if(_18d=="after"&&!this.dom.nextSibling){rt=Ext.DomHelper.append(this.dom.parentNode,el,!_18e);}else{rt=Ext.DomHelper[_18d=="after"?"insertAfter":"insertBefore"](this.dom,el,!_18e);}}else{rt=this.dom.parentNode.insertBefore(Ext.getDom(el),_18d=="before"?this.dom:this.dom.nextSibling);if(!_18e){rt=Ext.get(rt);}}return rt;},wrap:function(_191,_192){if(!_191){_191={tag:"div"};}var _193=Ext.DomHelper.insertBefore(this.dom,_191,!_192);_193.dom?_193.dom.appendChild(this.dom):_193.appendChild(this.dom);return _193;},replace:function(el){el=Ext.get(el);this.insertBefore(el);el.remove();return this;},insertHtml:function(_195,html,_197){var el=Ext.DomHelper.insertHtml(_195,this.dom,html);return _197?Ext.get(el):el;},set:function(o,_19a){var el=this.dom;_19a=typeof _19a=="undefined"?(el.setAttribute?true:false):_19a;for(var attr in o){if(attr=="style"||typeof o[attr]=="function"){continue;}if(attr=="cls"){el.className=o["cls"];}else{if(_19a){el.setAttribute(attr,o[attr]);}else{el[attr]=o[attr];}}}if(o.style){Ext.DomHelper.applyStyles(el,o.style);}return this;},addKeyListener:function(key,fn,_19f){var _1a0;if(typeof key!="object"||key instanceof Array){_1a0={key:key,fn:fn,scope:_19f};}else{_1a0={key:key.key,shift:key.shift,ctrl:key.ctrl,alt:key.alt,fn:fn,scope:_19f};}return new Ext.KeyMap(this,_1a0);},addKeyMap:function(_1a1){return new Ext.KeyMap(this,_1a1);},isScrollable:function(){var dom=this.dom;return dom.scrollHeight>dom.clientHeight||dom.scrollWidth>dom.clientWidth;},scrollTo:function(side,_1a4,_1a5){var prop=side.toLowerCase()=="left"?"scrollLeft":"scrollTop";if(!_1a5||!A){this.dom[prop]=_1a4;}else{var to=prop=="scrollLeft"?[_1a4,this.dom.scrollTop]:[this.dom.scrollLeft,_1a4];this.anim({scroll:{"to":to}},this.preanim(arguments,2),"scroll");}return this;},scroll:function(_1a8,_1a9,_1aa){if(!this.isScrollable()){return;}var el=this.dom;var l=el.scrollLeft,t=el.scrollTop;var w=el.scrollWidth,h=el.scrollHeight;var cw=el.clientWidth,ch=el.clientHeight;_1a8=_1a8.toLowerCase();var _1b2=false;var a=this.preanim(arguments,2);switch(_1a8){case"l":case"left":if(w-l>cw){var v=Math.min(l+_1a9,w-cw);this.scrollTo("left",v,a);_1b2=true;}break;case"r":case"right":if(l>0){var v=Math.max(l-_1a9,0);this.scrollTo("left",v,a);_1b2=true;}break;case"t":case"top":case"up":if(t>0){var v=Math.max(t-_1a9,0);this.scrollTo("top",v,a);_1b2=true;}break;case"b":case"bottom":case"down":if(h-t>ch){var v=Math.min(t+_1a9,h-ch);this.scrollTo("top",v,a);_1b2=true;}break;}return _1b2;},translatePoints:function(x,y){if(typeof x=="object"||x instanceof Array){y=x[1];x=x[0];}var p=this.getStyle("position");var o=this.getXY();var l=parseInt(this.getStyle("left"),10);var t=parseInt(this.getStyle("top"),10);if(isNaN(l)){l=(p=="relative")?0:this.dom.offsetLeft;}if(isNaN(t)){t=(p=="relative")?0:this.dom.offsetTop;}return{left:(x-o[0]+l),top:(y-o[1]+t)};},getScroll:function(){var d=this.dom,doc=document;if(d==doc||d==doc.body){var l=window.pageXOffset||doc.documentElement.scrollLeft||doc.body.scrollLeft||0;var t=window.pageYOffset||doc.documentElement.scrollTop||doc.body.scrollTop||0;return{left:l,top:t};}else{return{left:d.scrollLeft,top:d.scrollTop};}},getColor:function(attr,_1c0,_1c1){var v=this.getStyle(attr);if(!v||v=="transparent"||v=="inherit"){return _1c0;}var _1c3=typeof _1c1=="undefined"?"#":_1c1;if(v.substr(0,4)=="rgb("){var rvs=v.slice(4,v.length-1).split(",");for(var i=0;i<3;i++){var h=parseInt(rvs[i]).toString(16);if(h<16){h="0"+h;}_1c3+=h;}}else{if(v.substr(0,1)=="#"){if(v.length==4){for(var i=1;i<4;i++){var c=v.charAt(i);_1c3+=c+c;}}else{if(v.length==7){_1c3+=v.substr(1);}}}}return(_1c3.length>5?_1c3.toLowerCase():_1c0);},boxWrap:function(cls){cls=cls||"x-box";var el=Ext.get(this.insertHtml("beforeBegin",String.format("<div class=\"{0}\">"+El.boxMarkup+"</div>",cls)));el.child("."+cls+"-mc").dom.appendChild(this.dom);return el;},getAttributeNS:Ext.isIE?function(ns,name){var d=this.dom;var type=typeof d[ns+":"+name];if(type!="undefined"&&type!="unknown"){return d[ns+":"+name];}return d[name];}:function(ns,name){var d=this.dom;return d.getAttributeNS(ns,name)||d.getAttribute(ns+":"+name)||d.getAttribute(name)||d[name];}};var ep=El.prototype;ep.on=ep.addListener;ep.mon=ep.addListener;ep.un=ep.removeListener;ep.autoBoxAdjust=true;El.unitPattern=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i;El.addUnits=function(v,_1d3){if(v===""||v=="auto"){return v;}if(v===undefined){return"";}if(typeof v=="number"||!El.unitPattern.test(v)){return v+(_1d3||"px");}return v;};El.boxMarkup="<div class=\"{0}-tl\"><div class=\"{0}-tr\"><div class=\"{0}-tc\"></div></div></div><div class=\"{0}-ml\"><div class=\"{0}-mr\"><div class=\"{0}-mc\"></div></div></div><div class=\"{0}-bl\"><div class=\"{0}-br\"><div class=\"{0}-bc\"></div></div></div>";El.VISIBILITY=1;El.DISPLAY=2;El.borders={l:"border-left-width",r:"border-right-width",t:"border-top-width",b:"border-bottom-width"};El.paddings={l:"padding-left",r:"padding-right",t:"padding-top",b:"padding-bottom"};El.margins={l:"margin-left",r:"margin-right",t:"margin-top",b:"margin-bottom"};El.cache={};var _1d4;El.get=function(el){var ex,elm,id;if(!el){return null;}if(typeof el=="string"){if(!(elm=document.getElementById(el))){return null;}if(ex=El.cache[el]){ex.dom=elm;}else{ex=El.cache[el]=new El(elm);}return ex;}else{if(el.tagName){if(!(id=el.id)){id=Ext.id(el);}if(ex=El.cache[id]){ex.dom=el;}else{ex=El.cache[id]=new El(el);}return ex;}else{if(el instanceof El){if(el!=_1d4){el.dom=document.getElementById(el.id)||el.dom;El.cache[el.id]=el;}return el;}else{if(el.isComposite){return el;}else{if(el instanceof Array){return El.select(el);}else{if(el==document){if(!_1d4){var f=function(){};f.prototype=El.prototype;_1d4=new f();_1d4.dom=document;}return _1d4;}}}}}}return null;};El.uncache=function(el){for(var i=0,a=arguments,len=a.length;i<len;i++){if(a[i]){delete El.cache[a[i].id||a[i]];}}};El.garbageCollect=function(){if(!Ext.enableGarbageCollector){clearInterval(El.collectorThread);return;}for(var eid in El.cache){var el=El.cache[eid],d=el.dom;if(!d||!d.parentNode||(!d.offsetParent&&!document.getElementById(eid))){delete El.cache[eid];if(d&&Ext.enableListenerCollection){E.purgeElement(d);}}}};El.collectorThreadId=setInterval(El.garbageCollect,30000);El.Flyweight=function(dom){this.dom=dom;};El.Flyweight.prototype=El.prototype;El._flyweights={};El.fly=function(el,_1e3){_1e3=_1e3||"_global";el=Ext.getDom(el);if(!el){return null;}if(!El._flyweights[_1e3]){El._flyweights[_1e3]=new El.Flyweight();}El._flyweights[_1e3].dom=el;return El._flyweights[_1e3];};Ext.get=El.get;Ext.fly=El.fly;var _147=Ext.isStrict?{select:1}:{input:1,select:1,textarea:1};if(Ext.isIE||Ext.isGecko){_147["button"]=1;}Ext.EventManager.on(window,"unload",function(){delete El.cache;delete El._flyweights;});})();



Ext.enableFx=true;Ext.Fx={slideIn:function(_1,o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){_1=_1||"t";this.fixDisplay();var r=this.getFxRestore();var b=this.getBox();this.setSize(b);var _6=this.fxWrap(r.pos,o,"hidden");var st=this.dom.style;st.visibility="visible";st.position="absolute";var _8=function(){el.fxUnwrap(_6,r.pos,o);st.width=r.width;st.height=r.height;el.afterFx(o);};var a,pt={to:[b.x,b.y]},bw={to:b.width},bh={to:b.height};switch(_1.toLowerCase()){case"t":_6.setSize(b.width,0);st.left=st.bottom="0";a={height:bh};break;case"l":_6.setSize(0,b.height);st.right=st.top="0";a={width:bw};break;case"r":_6.setSize(0,b.height);_6.setX(b.right);st.left=st.top="0";a={width:bw,points:pt};break;case"b":_6.setSize(b.width,0);_6.setY(b.bottom);st.left=st.top="0";a={height:bh,points:pt};break;case"tl":_6.setSize(0,0);st.right=st.bottom="0";a={width:bw,height:bh};break;case"bl":_6.setSize(0,0);_6.setY(b.y+b.height);st.right=st.top="0";a={width:bw,height:bh,points:pt};break;case"br":_6.setSize(0,0);_6.setXY([b.right,b.bottom]);st.left=st.top="0";a={width:bw,height:bh,points:pt};break;case"tr":_6.setSize(0,0);_6.setX(b.x+b.width);st.left=st.bottom="0";a={width:bw,height:bh,points:pt};break;}this.dom.style.visibility="visible";_6.show();arguments.callee.anim=_6.fxanim(a,o,"motion",0.5,"easeOut",_8);});return this;},slideOut:function(_d,o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){_d=_d||"t";var r=this.getFxRestore();var b=this.getBox();this.setSize(b);var _12=this.fxWrap(r.pos,o,"visible");var st=this.dom.style;st.visibility="visible";st.position="absolute";_12.setSize(b);var _14=function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}el.fxUnwrap(_12,r.pos,o);st.width=r.width;st.height=r.height;el.afterFx(o);};var a,_16={to:0};switch(_d.toLowerCase()){case"t":st.left=st.bottom="0";a={height:_16};break;case"l":st.right=st.top="0";a={width:_16};break;case"r":st.left=st.top="0";a={width:_16,points:{to:[b.right,b.y]}};break;case"b":st.left=st.top="0";a={height:_16,points:{to:[b.x,b.bottom]}};break;case"tl":st.right=st.bottom="0";a={width:_16,height:_16};break;case"bl":st.right=st.top="0";a={width:_16,height:_16,points:{to:[b.x,b.bottom]}};break;case"br":st.left=st.top="0";a={width:_16,height:_16,points:{to:[b.x+b.width,b.bottom]}};break;case"tr":st.left=st.bottom="0";a={width:_16,height:_16,points:{to:[b.right,b.y]}};break;}arguments.callee.anim=_12.fxanim(a,o,"motion",0.5,"easeOut",_14);});return this;},puff:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){this.clearOpacity();this.show();var r=this.getFxRestore();var st=this.dom.style;var _1b=function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}el.clearOpacity();el.setPositioning(r.pos);st.width=r.width;st.height=r.height;st.fontSize="";el.afterFx(o);};var _1c=this.getWidth();var _1d=this.getHeight();arguments.callee.anim=this.fxanim({width:{to:this.adjustWidth(_1c*2)},height:{to:this.adjustHeight(_1d*2)},points:{by:[-(_1c*0.5),-(_1d*0.5)]},opacity:{to:0},fontSize:{to:200,unit:"%"}},o,"motion",0.5,"easeOut",_1b);});return this;},switchOff:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){this.clearOpacity();this.clip();var r=this.getFxRestore();var st=this.dom.style;var _22=function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}el.clearOpacity();el.setPositioning(r.pos);st.width=r.width;st.height=r.height;el.afterFx(o);};this.fxanim({opacity:{to:0.3}},null,null,0.1,null,function(){this.clearOpacity();(function(){this.fxanim({height:{to:1},points:{by:[0,this.getHeight()*0.5]}},o,"motion",0.3,"easeIn",_22);}).defer(100,this);});});return this;},highlight:function(_23,o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){_23=_23||"ffff9c";attr=o.attr||"backgroundColor";this.clearOpacity();this.show();var _26=this.getColor(attr);var _27=this.dom.style[attr];endColor=(o.endColor||_26)||"ffffff";var _28=function(){el.dom.style[attr]=_27;el.afterFx(o);};var a={};a[attr]={from:_23,to:endColor};arguments.callee.anim=this.fxanim(a,o,"color",1,"easeIn",_28);});return this;},frame:function(_2a,_2b,o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){_2a=_2a||"#C3DAF9";if(_2a.length==6){_2a="#"+_2a;}_2b=_2b||1;duration=o.duration||1;this.show();var b=this.getBox();var _2f=function(){var _30=this.createProxy({style:{visbility:"hidden",position:"absolute","z-index":"35000",border:"0px solid "+_2a}});var _31=Ext.isBorderBox?2:1;_30.animate({top:{from:b.y,to:b.y-20},left:{from:b.x,to:b.x-20},borderWidth:{from:0,to:10},opacity:{from:1,to:0},height:{from:b.height,to:(b.height+(20*_31))},width:{from:b.width,to:(b.width+(20*_31))}},duration,function(){_30.remove();});if(--_2b>0){_2f.defer((duration/2)*1000,this);}else{el.afterFx(o);}};_2f.call(this);});return this;},pause:function(_32){var el=this.getFxEl();var o={};el.queueFx(o,function(){setTimeout(function(){el.afterFx(o);},_32*1000);});return this;},fadeIn:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){this.setOpacity(0);this.fixDisplay();this.dom.style.visibility="visible";var to=o.endOpacity||1;arguments.callee.anim=this.fxanim({opacity:{to:to}},o,null,0.5,"easeOut",function(){if(to==1){this.clearOpacity();}el.afterFx(o);});});return this;},fadeOut:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){arguments.callee.anim=this.fxanim({opacity:{to:o.endOpacity||0}},o,null,0.5,"easeOut",function(){if(this.visibilityMode==Ext.Element.DISPLAY||o.useDisplay){this.dom.style.display="none";}else{this.dom.style.visibility="hidden";}this.clearOpacity();el.afterFx(o);});});return this;},scale:function(w,h,o){this.shift(Ext.apply({},o,{width:w,height:h}));return this;},shift:function(o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){var a={},w=o.width,h=o.height,x=o.x,y=o.y,op=o.opacity;if(w!==undefined){a.width={to:this.adjustWidth(w)};}if(h!==undefined){a.height={to:this.adjustHeight(h)};}if(x!==undefined||y!==undefined){a.points={to:[x!==undefined?x:this.getX(),y!==undefined?y:this.getY()]};}if(op!==undefined){a.opacity={to:op};}if(o.xy!==undefined){a.points={to:o.xy};}arguments.callee.anim=this.fxanim(a,o,"motion",0.35,"easeOut",function(){el.afterFx(o);});});return this;},ghost:function(_45,o){var el=this.getFxEl();o=o||{};el.queueFx(o,function(){_45=_45||"b";var r=this.getFxRestore();var w=this.getWidth(),h=this.getHeight();var st=this.dom.style;var _4c=function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}el.clearOpacity();el.setPositioning(r.pos);st.width=r.width;st.height=r.height;el.afterFx(o);};var a={opacity:{to:0},points:{}},pt=a.points;switch(_45.toLowerCase()){case"t":pt.by=[0,-h];break;case"l":pt.by=[-w,0];break;case"r":pt.by=[w,0];break;case"b":pt.by=[0,h];break;case"tl":pt.by=[-w,-h];break;case"bl":pt.by=[-w,h];break;case"br":pt.by=[w,h];break;case"tr":pt.by=[w,-h];break;}arguments.callee.anim=this.fxanim(a,o,"motion",0.5,"easeOut",_4c);});return this;},syncFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:true,stopFx:false});return this;},sequenceFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:false,stopFx:false});return this;},nextFx:function(){var ef=this.fxQueue[0];if(ef){ef.call(this);}},hasActiveFx:function(){return this.fxQueue&&this.fxQueue[0];},stopFx:function(){if(this.hasActiveFx()){var cur=this.fxQueue[0];if(cur&&cur.anim&&cur.anim.isAnimated()){this.fxQueue=[cur];cur.anim.stop(true);}}return this;},beforeFx:function(o){if(this.hasActiveFx()&&!o.concurrent){if(o.stopFx){this.stopFx();return true;}return false;}return true;},hasFxBlock:function(){var q=this.fxQueue;return q&&q[0]&&q[0].block;},queueFx:function(o,fn){if(!this.fxQueue){this.fxQueue=[];}if(!this.hasFxBlock()){Ext.applyIf(o,this.fxDefaults);if(!o.concurrent){var run=this.beforeFx(o);fn.block=o.block;this.fxQueue.push(fn);if(run){this.nextFx();}}else{fn.call(this);}}return this;},fxWrap:function(pos,o,vis){var _59;if(!o.wrap||!(_59=Ext.get(o.wrap))){var _5a;if(o.fixPosition){_5a=this.getXY();}var div=document.createElement("div");div.style.visibility=vis;_59=Ext.get(this.dom.parentNode.insertBefore(div,this.dom));_59.setPositioning(pos);if(_59.getStyle("position")=="static"){_59.position("relative");}this.clearPositioning("auto");_59.clip();_59.dom.appendChild(this.dom);if(_5a){_59.setXY(_5a);}}return _59;},fxUnwrap:function(_5c,pos,o){this.clearPositioning();this.setPositioning(pos);if(!o.wrap){_5c.dom.parentNode.insertBefore(this.dom,_5c.dom);_5c.remove();}},getFxRestore:function(){var st=this.dom.style;return{pos:this.getPositioning(),width:st.width,height:st.height};},afterFx:function(o){if(o.afterStyle){this.applyStyles(o.afterStyle);}if(o.afterCls){this.addClass(o.afterCls);}if(o.remove===true){this.remove();}Ext.callback(o.callback,o.scope,[this]);if(!o.concurrent){this.fxQueue.shift();this.nextFx();}},getFxEl:function(){return Ext.get(this.dom);},fxanim:function(_61,opt,_63,_64,_65,cb){_63=_63||"run";opt=opt||{};var _67=Ext.lib.Anim[_63](this.dom,_61,(opt.duration||_64)||0.35,(opt.easing||_65)||"easeOut",function(){Ext.callback(cb,this);},this);opt.anim=_67;return _67;}};Ext.Fx.resize=Ext.Fx.scale;Ext.apply(Ext.Element.prototype,Ext.Fx);



Ext.CompositeElement=function(_1){this.elements=[];this.addElements(_1);};Ext.CompositeElement.prototype={isComposite:true,addElements:function(_2){if(!_2){return this;}if(typeof _2=="string"){_2=Ext.Element.selectorFunction(_2);}var _3=this.elements;var _4=_3.length-1;for(var i=0,_6=_2.length;i<_6;i++){_3[++_4]=Ext.get(_2[i]);}return this;},fill:function(_7){this.elements=[];this.add(_7);return this;},filter:function(_8){var _9=[];this.each(function(el){if(el.is(_8)){_9[_9.length]=el.dom;}});this.fill(_9);return this;},invoke:function(fn,_c){var _d=this.elements;for(var i=0,_f=_d.length;i<_f;i++){Ext.Element.prototype[fn].apply(_d[i],_c);}return this;},add:function(els){if(typeof els=="string"){this.addElements(Ext.Element.selectorFunction(els));}else{if(els.length!==undefined){this.addElements(els);}else{this.addElements([els]);}}return this;},each:function(fn,_12){var els=this.elements;for(var i=0,len=els.length;i<len;i++){if(fn.call(_12||els[i],els[i],this,i)===false){break;}}return this;},item:function(_16){return this.elements[_16]||null;},first:function(){return this.item(0);},last:function(){return this.item(this.elements.length-1);},getCount:function(){return this.elements.length;},contains:function(el){return this.indexOf(el)!==-1;},indexOf:function(el){return this.elements.indexOf(Ext.get(el));},removeElement:function(el,_1a){if(el instanceof Array){for(var i=0,len=el.length;i<len;i++){this.removeElement(el[i]);}return this;}var _1d=typeof el=="number"?el:this.indexOf(el);if(_1d!==-1){if(_1a){var d=this.elements[_1d];if(d.dom){d.remove();}else{d.parentNode.removeChild(d);}}this.elements.splice(_1d,1);}return this;},replaceElement:function(el,_20,_21){var _22=typeof el=="number"?el:this.indexOf(el);if(_22!==-1){if(_21){this.elements[_22].replaceWith(_20);}else{this.elements.splice(_22,1,Ext.get(_20));}}return this;},clear:function(){this.elements=[];}};(function(){Ext.CompositeElement.createCall=function(_23,_24){if(!_23[_24]){_23[_24]=function(){return this.invoke(_24,arguments);};}};for(var _25 in Ext.Element.prototype){if(typeof Ext.Element.prototype[_25]=="function"){Ext.CompositeElement.createCall(Ext.CompositeElement.prototype,_25);}}})();Ext.CompositeElementLite=function(els){Ext.CompositeElementLite.superclass.constructor.call(this,els);this.el=new Ext.Element.Flyweight();};Ext.extend(Ext.CompositeElementLite,Ext.CompositeElement,{addElements:function(els){if(els){if(els instanceof Array){this.elements=this.elements.concat(els);}else{var _28=this.elements;var _29=_28.length-1;for(var i=0,len=els.length;i<len;i++){_28[++_29]=els[i];}}}return this;},invoke:function(fn,_2d){var els=this.elements;var el=this.el;for(var i=0,len=els.length;i<len;i++){el.dom=els[i];Ext.Element.prototype[fn].apply(el,_2d);}return this;},item:function(_32){if(!this.elements[_32]){return null;}this.el.dom=this.elements[_32];return this.el;},addListener:function(_33,_34,_35,opt){var els=this.elements;for(var i=0,len=els.length;i<len;i++){Ext.EventManager.on(els[i],_33,_34,_35||els[i],opt);}return this;},each:function(fn,_3b){var els=this.elements;var el=this.el;for(var i=0,len=els.length;i<len;i++){el.dom=els[i];if(fn.call(_3b||el,el,this,i)===false){break;}}return this;},indexOf:function(el){return this.elements.indexOf(Ext.getDom(el));},replaceElement:function(el,_42,_43){var _44=typeof el=="number"?el:this.indexOf(el);if(_44!==-1){_42=Ext.getDom(_42);if(_43){var d=this.elements[_44];d.parentNode.insertBefore(_42,d);d.parentNode.removeChild(d);}this.elements.splice(_44,1,_42);}return this;}});Ext.CompositeElementLite.prototype.on=Ext.CompositeElementLite.prototype.addListener;if(Ext.DomQuery){Ext.Element.selectorFunction=Ext.DomQuery.select;}Ext.Element.select=function(_46,_47,_48){var els;if(typeof _46=="string"){els=Ext.Element.selectorFunction(_46,_48);}else{if(_46.length!==undefined){els=_46;}else{throw"Invalid selector";}}if(_47===true){return new Ext.CompositeElement(els);}else{return new Ext.CompositeElementLite(els);}};Ext.select=Ext.Element.select;



Ext.data.Connection=function(_1){Ext.apply(this,_1);this.addEvents({"beforerequest":true,"requestcomplete":true,"requestexception":true});Ext.data.Connection.superclass.constructor.call(this);};Ext.extend(Ext.data.Connection,Ext.util.Observable,{timeout:30000,autoAbort:false,disableCaching:true,request:function(o){if(this.fireEvent("beforerequest",this,o)!==false){var p=o.params;if(typeof p=="function"){p=p.call(o.scope||window,o);}if(typeof p=="object"){p=Ext.urlEncode(o.params);}if(this.extraParams){var _4=Ext.urlEncode(this.extraParams);p=p?(p+"&"+_4):_4;}var _5=o.url||this.url;if(typeof _5=="function"){_5=_5.call(o.scope||window,o);}if(o.form){var _6=Ext.getDom(o.form);_5=_5||_6.action;var _7=_6.getAttribute("enctype");if(o.isUpload||(_7&&_7.toLowerCase()=="multipart/form-data")){return this.doFormUpload(o,p,_5);}var f=Ext.lib.Ajax.serializeForm(_6);p=p?(p+"&"+f):f;}var hs=o.headers;if(this.defaultHeaders){hs=Ext.apply(hs||{},this.defaultHeaders);if(!o.headers){o.headers=hs;}}var cb={success:this.handleResponse,failure:this.handleFailure,scope:this,argument:{options:o},timeout:this.timeout};var _b=o.method||this.method||(p?"POST":"GET");if(_b=="GET"&&(this.disableCaching&&o.disableCaching!==false)||o.disableCaching===true){_5+=(_5.indexOf("?")!=-1?"&":"?")+"_dc="+(new Date().getTime());}if(typeof o.autoAbort=="boolean"){if(o.autoAbort){this.abort();}}else{if(this.autoAbort!==false){this.abort();}}if((_b=="GET"&&p)||o.xmlData){_5+=(_5.indexOf("?")!=-1?"&":"?")+p;p="";}this.transId=Ext.lib.Ajax.request(_b,_5,cb,p,o);return this.transId;}else{Ext.callback(o.callback,o.scope,[o,null,null]);return null;}},isLoading:function(_c){if(_c){return Ext.lib.Ajax.isCallInProgress(_c);}else{return this.transId?true:false;}},abort:function(_d){if(_d||this.isLoading()){Ext.lib.Ajax.abort(_d||this.transId);}},handleResponse:function(_e){this.transId=false;var _f=_e.argument.options;_e.argument=_f?_f.argument:null;this.fireEvent("requestcomplete",this,_e,_f);Ext.callback(_f.success,_f.scope,[_e,_f]);Ext.callback(_f.callback,_f.scope,[_f,true,_e]);},handleFailure:function(_10,e){this.transId=false;var _12=_10.argument.options;_10.argument=_12?_12.argument:null;this.fireEvent("requestexception",this,_10,_12,e);Ext.callback(_12.failure,_12.scope,[_10,_12]);Ext.callback(_12.callback,_12.scope,[_12,false,_10]);},doFormUpload:function(o,ps,url){var id=Ext.id();var _17=document.createElement("iframe");_17.id=id;_17.name=id;_17.className="x-hidden";if(Ext.isIE){_17.src=Ext.SSL_SECURE_URL;}document.body.appendChild(_17);if(Ext.isIE){document.frames[id].name=id;}var _18=Ext.getDom(o.form);_18.target=id;_18.method="POST";_18.enctype=_18.encoding="multipart/form-data";if(url){_18.action=url;}var _19,hd;if(ps){_19=[];ps=Ext.urlDecode(ps,false);for(var k in ps){if(ps.hasOwnProperty(k)){hd=document.createElement("input");hd.type="hidden";hd.name=k;hd.value=ps[k];_18.appendChild(hd);_19.push(hd);}}}function cb(){var r={responseText:"",responseXML:null};r.argument=o?o.argument:null;try{var doc;if(Ext.isIE){doc=_17.contentWindow.document;}else{doc=(_17.contentDocument||window.frames[id].document);}if(doc&&doc.body){r.responseText=doc.body.innerHTML;}if(doc&&doc.XMLDocument){r.responseXML=doc.XMLDocument;}else{r.responseXML=doc;}}catch(e){}Ext.EventManager.removeListener(_17,"load",cb,this);this.fireEvent("requestcomplete",this,r,o);Ext.callback(o.success,o.scope,[r,o]);Ext.callback(o.callback,o.scope,[o,true,r]);setTimeout(function(){document.body.removeChild(_17);},100);}Ext.EventManager.on(_17,"load",cb,this);_18.submit();if(_19){for(var i=0,len=_19.length;i<len;i++){_18.removeChild(_19[i]);}}}});Ext.Ajax=new Ext.data.Connection({autoAbort:false,serializeForm:function(_20){return Ext.lib.Ajax.serializeForm(_20);}});



Ext.UpdateManager=function(el,_2){el=Ext.get(el);if(!_2&&el.updateManager){return el.updateManager;}this.el=el;this.defaultUrl=null;this.addEvents({"beforeupdate":true,"update":true,"failure":true});var d=Ext.UpdateManager.defaults;this.sslBlankUrl=d.sslBlankUrl;this.disableCaching=d.disableCaching;this.indicatorText=d.indicatorText;this.showLoadIndicator=d.showLoadIndicator;this.timeout=d.timeout;this.loadScripts=d.loadScripts;this.transaction=null;this.autoRefreshProcId=null;this.refreshDelegate=this.refresh.createDelegate(this);this.updateDelegate=this.update.createDelegate(this);this.formUpdateDelegate=this.formUpdate.createDelegate(this);this.successDelegate=this.processSuccess.createDelegate(this);this.failureDelegate=this.processFailure.createDelegate(this);if(!this.renderer){this.renderer=new Ext.UpdateManager.BasicRenderer();}Ext.UpdateManager.superclass.constructor.call(this);};Ext.extend(Ext.UpdateManager,Ext.util.Observable,{getEl:function(){return this.el;},update:function(_4,_5,_6,_7){if(this.fireEvent("beforeupdate",this.el,_4,_5)!==false){var _8=this.method,_9;if(typeof _4=="object"){_9=_4;_4=_9.url;_5=_5||_9.params;_6=_6||_9.callback;_7=_7||_9.discardUrl;if(_6&&_9.scope){_6=_6.createDelegate(_9.scope);}if(typeof _9.method!="undefined"){_8=_9.method;}if(typeof _9.nocache!="undefined"){this.disableCaching=_9.nocache;}if(typeof _9.text!="undefined"){this.indicatorText="<div class=\"loading-indicator\">"+_9.text+"</div>";}if(typeof _9.scripts!="undefined"){this.loadScripts=_9.scripts;}if(typeof _9.timeout!="undefined"){this.timeout=_9.timeout;}}this.showLoading();if(!_7){this.defaultUrl=_4;}if(typeof _4=="function"){_4=_4.call(this);}_8=_8||(_5?"POST":"GET");if(_8=="GET"){_4=this.prepareUrl(_4);}var o=Ext.apply(_9||{},{url:_4,params:_5,success:this.successDelegate,failure:this.failureDelegate,callback:undefined,timeout:(this.timeout*1000),argument:{"url":_4,"form":null,"callback":_6,"params":_5}});this.transaction=Ext.Ajax.request(o);}},formUpdate:function(_b,_c,_d,_e){if(this.fireEvent("beforeupdate",this.el,_b,_c)!==false){if(typeof _c=="function"){_c=_c.call(this);}_b=Ext.getDom(_b);this.transaction=Ext.Ajax.request({form:_b,url:_c,success:this.successDelegate,failure:this.failureDelegate,timeout:(this.timeout*1000),argument:{"url":_c,"form":_b,"callback":_e,"reset":_d}});this.showLoading.defer(1,this);}},refresh:function(_f){if(this.defaultUrl==null){return;}this.update(this.defaultUrl,null,_f,true);},startAutoRefresh:function(_10,url,_12,_13,_14){if(_14){this.update(url||this.defaultUrl,_12,_13,true);}if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);}this.autoRefreshProcId=setInterval(this.update.createDelegate(this,[url||this.defaultUrl,_12,_13,true]),_10*1000);},stopAutoRefresh:function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId;}},isAutoRefreshing:function(){return this.autoRefreshProcId?true:false;},showLoading:function(){if(this.showLoadIndicator){this.el.update(this.indicatorText);}},prepareUrl:function(url){if(this.disableCaching){var _16="_dc="+(new Date().getTime());if(url.indexOf("?")!==-1){url+="&"+_16;}else{url+="?"+_16;}}return url;},processSuccess:function(_17){this.transaction=null;if(_17.argument.form&&_17.argument.reset){try{_17.argument.form.reset();}catch(e){}}if(this.loadScripts){this.renderer.render(this.el,_17,this,this.updateComplete.createDelegate(this,[_17]));}else{this.renderer.render(this.el,_17,this);this.updateComplete(_17);}},updateComplete:function(_18){this.fireEvent("update",this.el,_18);if(typeof _18.argument.callback=="function"){_18.argument.callback(this.el,true,_18);}},processFailure:function(_19){this.transaction=null;this.fireEvent("failure",this.el,_19);if(typeof _19.argument.callback=="function"){_19.argument.callback(this.el,false,_19);}},setRenderer:function(_1a){this.renderer=_1a;},getRenderer:function(){return this.renderer;},setDefaultUrl:function(_1b){this.defaultUrl=_1b;},abort:function(){if(this.transaction){Ext.Ajax.abort(this.transaction);}},isUpdating:function(){if(this.transaction){return Ext.Ajax.isLoading(this.transaction);}return false;}});Ext.UpdateManager.defaults={timeout:30,loadScripts:false,sslBlankUrl:(Ext.SSL_SECURE_URL||"javascript:false"),disableCaching:false,showLoadIndicator:true,indicatorText:"<div class=\"loading-indicator\">Loading...</div>"};Ext.UpdateManager.updateElement=function(el,url,_1e,_1f){var um=Ext.get(el,true).getUpdateManager();Ext.apply(um,_1f);um.update(url,_1e,_1f?_1f.callback:null);};Ext.UpdateManager.update=Ext.UpdateManager.updateElement;Ext.UpdateManager.BasicRenderer=function(){};Ext.UpdateManager.BasicRenderer.prototype={render:function(el,_22,_23,_24){el.update(_22.responseText,_23.loadScripts,_24);}};



Ext.util.DelayedTask=function(fn,_2,_3){var id=null,d,t;var _7=function(){var _8=new Date().getTime();if(_8-t>=d){clearInterval(id);id=null;fn.apply(_2,_3||[]);}};this.delay=function(_9,_a,_b,_c){if(id&&_9!=d){this.cancel();}d=_9;t=new Date().getTime();fn=_a||fn;_2=_b||_2;_3=_c||_3;if(!id){id=setInterval(_7,d);}};this.cancel=function(){if(id){clearInterval(id);id=null;}};};



Ext.form.BasicForm=function(el,_2){Ext.apply(this,_2);this.items=new Ext.util.MixedCollection(false,function(o){return o.id||(o.id=Ext.id());});this.addEvents({beforeaction:true,actionfailed:true,actioncomplete:true});if(el){this.initEl(el);}Ext.form.BasicForm.superclass.constructor.call(this);};Ext.extend(Ext.form.BasicForm,Ext.util.Observable,{timeout:30,activeAction:null,trackResetOnLoad:false,waitMsgTarget:undefined,initEl:function(el){this.el=Ext.get(el);this.id=this.el.id||Ext.id();this.el.on("submit",this.onSubmit,this);this.el.addClass("x-form");},onSubmit:function(e){e.stopEvent();},isValid:function(){var _6=true;this.items.each(function(f){if(!f.validate()){_6=false;}});return _6;},isDirty:function(){var _8=false;this.items.each(function(f){if(f.isDirty()){_8=true;return false;}});return _8;},doAction:function(_a,_b){if(typeof _a=="string"){_a=new Ext.form.Action.ACTION_TYPES[_a](this,_b);}if(this.fireEvent("beforeaction",this,_a)!==false){this.beforeAction(_a);_a.run.defer(100,_a);}return this;},submit:function(_c){this.doAction("submit",_c);return this;},load:function(_d){this.doAction("load",_d);return this;},updateRecord:function(_e){_e.beginEdit();var fs=_e.fields;fs.each(function(f){var _11=this.findField(f.name);if(_11){_e.set(f.name,_11.getValue());}},this);_e.endEdit();return this;},loadRecord:function(_12){this.setValues(_12.data);return this;},beforeAction:function(_13){var o=_13.options;if(o.waitMsg){if(this.waitMsgTarget===true){this.el.mask(o.waitMsg,"x-mask-loading");}else{if(this.waitMsgTarget){this.waitMsgTarget=Ext.get(this.waitMsgTarget);this.waitMsgTarget.mask(o.waitMsg,"x-mask-loading");}else{Ext.MessageBox.wait(o.waitMsg,o.waitTitle||this.waitTitle||"Please Wait...");}}}},afterAction:function(_15,_16){this.activeAction=null;var o=_15.options;if(o.waitMsg){if(this.waitMsgTarget===true){this.el.unmask();}else{if(this.waitMsgTarget){this.waitMsgTarget.unmask();}else{Ext.MessageBox.updateProgress(1);Ext.MessageBox.hide();}}}if(_16){if(o.reset){this.reset();}Ext.callback(o.success,o.scope,[this,_15]);this.fireEvent("actioncomplete",this,_15);}else{Ext.callback(o.failure,o.scope,[this,_15]);this.fireEvent("actionfailed",this,_15);}},findField:function(id){var _19=this.items.get(id);if(!_19){this.items.each(function(f){if(f.isFormField&&(f.dataIndex==id||f.id==id||f.getName()==id)){_19=f;return false;}});}return _19||null;},markInvalid:function(_1b){if(_1b instanceof Array){for(var i=0,len=_1b.length;i<len;i++){var _1e=_1b[i];var f=this.findField(_1e.id);if(f){f.markInvalid(_1e.msg);}}}else{var _20,id;for(id in _1b){if(typeof _1b[id]!="function"&&(_20=this.findField(id))){_20.markInvalid(_1b[id]);}}}return this;},setValues:function(_22){if(_22 instanceof Array){for(var i=0,len=_22.length;i<len;i++){var v=_22[i];var f=this.findField(v.id);if(f){f.setValue(v.value);if(this.trackResetOnLoad){f.originalValue=f.getValue();}}}}else{var _27,id;for(id in _22){if(typeof _22[id]!="function"&&(_27=this.findField(id))){_27.setValue(_22[id]);if(this.trackResetOnLoad){_27.originalValue=_27.getValue();}}}}return this;},getValues:function(_29){var fs=Ext.lib.Ajax.serializeForm(this.el.dom);if(_29===true){return fs;}return Ext.urlDecode(fs);},clearInvalid:function(){this.items.each(function(f){f.clearInvalid();});return this;},reset:function(){this.items.each(function(f){f.reset();});return this;},add:function(){this.items.addAll(Array.prototype.slice.call(arguments,0));return this;},remove:function(_2d){this.items.remove(_2d);return this;},render:function(){this.items.each(function(f){if(f.isFormField&&!f.rendered&&document.getElementById(f.id)){f.applyTo(f.id);}});return this;},applyToFields:function(o){this.items.each(function(f){Ext.apply(f,o);});return this;},applyIfToFields:function(o){this.items.each(function(f){Ext.applyIf(f,o);});return this;}});Ext.BasicForm=Ext.form.BasicForm;



Ext.form.Action=function(_1,_2){this.form=_1;this.options=_2||{};};Ext.form.Action.CLIENT_INVALID="client";Ext.form.Action.SERVER_INVALID="server";Ext.form.Action.CONNECT_FAILURE="connect";Ext.form.Action.LOAD_FAILURE="load";Ext.form.Action.prototype={type:"default",failureType:undefined,response:undefined,result:undefined,run:function(_3){},success:function(_4){},handleResponse:function(_5){},failure:function(_6){this.response=_6;this.failureType=Ext.form.Action.CONNECT_FAILURE;this.form.afterAction(this,false);},processResponse:function(_7){this.response=_7;if(!_7.responseText){return true;}this.result=this.handleResponse(_7);return this.result;},getUrl:function(_8){var _9=this.options.url||this.form.url||this.form.el.dom.action;if(_8){var p=this.getParams();if(p){_9+=(_9.indexOf("?")!=-1?"&":"?")+p;}}return _9;},getMethod:function(){return(this.options.method||this.form.method||this.form.el.dom.method||"POST").toUpperCase();},getParams:function(){var bp=this.form.baseParams;var p=this.options.params;if(p){if(typeof p=="object"){p=Ext.urlEncode(Ext.applyIf(p,bp));}else{if(typeof p=="string"&&bp){p+="&"+Ext.urlEncode(bp);}}}else{if(bp){p=Ext.urlEncode(bp);}}return p;},createCallback:function(){return{success:this.success,failure:this.failure,scope:this,timeout:(this.form.timeout*1000),upload:this.form.fileUpload?this.success:undefined};}};Ext.form.Action.Submit=function(_d,_e){Ext.form.Action.Submit.superclass.constructor.call(this,_d,_e);};Ext.extend(Ext.form.Action.Submit,Ext.form.Action,{type:"submit",run:function(){var o=this.options;var _10=this.getMethod();var _11=_10=="POST";if(o.clientValidation===false||this.form.isValid()){Ext.Ajax.request(Ext.apply(this.createCallback(),{form:this.form.el.dom,url:this.getUrl(!_11),method:_10,params:_11?this.getParams():null,isUpload:this.form.fileUpload}));}else{if(o.clientValidation!==false){this.failureType=Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this,false);}}},success:function(_12){var _13=this.processResponse(_12);if(_13===true||_13.success){this.form.afterAction(this,true);return;}if(_13.errors){this.form.markInvalid(_13.errors);this.failureType=Ext.form.Action.SERVER_INVALID;}this.form.afterAction(this,false);},handleResponse:function(_14){if(this.form.errorReader){var rs=this.form.errorReader.read(_14);var _16=[];if(rs.records){for(var i=0,len=rs.records.length;i<len;i++){var r=rs.records[i];_16[i]=r.data;}}if(_16.length<1){_16=null;}return{success:rs.success,errors:_16};}return Ext.decode(_14.responseText);}});Ext.form.Action.Load=function(_1a,_1b){Ext.form.Action.Load.superclass.constructor.call(this,_1a,_1b);this.reader=this.form.reader;};Ext.extend(Ext.form.Action.Load,Ext.form.Action,{type:"load",run:function(){Ext.Ajax.request(Ext.apply(this.createCallback(),{method:this.getMethod(),url:this.getUrl(false),params:this.getParams()}));},success:function(_1c){var _1d=this.processResponse(_1c);if(_1d===true||!_1d.success||!_1d.data){this.failureType=Ext.form.Action.LOAD_FAILURE;this.form.afterAction(this,false);return;}this.form.clearInvalid();this.form.setValues(_1d.data);this.form.afterAction(this,true);},handleResponse:function(_1e){if(this.form.reader){var rs=this.form.reader.read(_1e);var _20=rs.records&&rs.records[0]?rs.records[0].data:null;return{success:rs.success,data:_20};}return Ext.decode(_1e.responseText);}});Ext.form.Action.ACTION_TYPES={"load":Ext.form.Action.Load,"submit":Ext.form.Action.Submit};


/*                                                                                                                                                      
Copyright (c) 2006, Db Medialab AS. All rights reserved.                                                                                                                                                                                                               
version: 0.1                                                                                                                                         
*/ 

/**
 * The DB Medialab global namespace
 * @constructor
 */
var DBM = window.DBM || {};

/**
 * Returns the namespace specified and creates it if it doesn't exist
 *
 * DBM.namespace("property.package");
 * DBM.namespace("DBM.property.package");
 *
 * Either of the above would create YAHOO.property, then
 * DBM.property.package
 *
 * @param  {String} ns The name of the namespace
 * @return {Object}    A reference to the namespace object
 */
DBM.namespace = function(ns) {

    if (!ns || !ns.length) {
        return null;
    }

    var levels = ns.split(".");
    var nsobj = DBM;

    // DBM is implied, so it is ignored if it is included
    for (var i=(levels[0] == "DBM") ? 1 : 0; i<levels.length; ++i) {
        nsobj[levels[i]] = nsobj[levels[i]] || {};
        nsobj = nsobj[levels[i]];
    }

    return nsobj;
};

DBM.namespace("module");
DBM.namespace("util");
DBM.namespace("util.include");

DBM.util.include.includeFiles = new Array();

DBM.util.include.includeOnce = function (script_filename) {
    if (!DBM.util.include.inArray(script_filename, DBM.util.include.includeFiles)) {
    	DBM.util.include.includeFiles[DBM.util.include.includeFiles.length] = script_filename;
        DBM.util.include.includeDom(script_filename);
    }
}

DBM.util.include.inArray = function (needle, haystack) {
    for (var i = 0; i < haystack.length; i++) {
        if (haystack[i] == needle) {
            return true;
        }
    }
    return false;
}

DBM.util.include.includeDom = function (script_filename) {
    var html_doc = document.getElementsByTagName('head').item(0);
    var js = document.createElement('script');
    js.setAttribute('language', 'javascript');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', script_filename);
    html_doc.appendChild(js);
    return false;
}

DBM.util.createDiv = function (target, html) {

	if (target != "") {
		if (document.body.innerHTML){
			   document.getElementById(target).innerHTML = html;
		}
		else if (document.getElementById){
			   var element = document.getElementById(target);
			   var range = document.createRange();
		
			   range.selectNodeContents(element);
			   range.deleteContents();
			   element.appendChild(range.createContextualFragment(html));
		}
	}
}


DBM.util.getObj = function (name) {

	if (document.getElementById)
	{
		this.obj = document.getElementById(name);
		this.style = document.getElementById(name).style;
	}
	else if (document.all)
	{
		this.obj = document.all[name];
		this.style = document.all[name].style;
	}
	else if (document.layers)
	{
		this.obj = document.layers[name];
		this.style = document.layers[name];
	}
}

DBM.util.request = function(id, url, callback, target, loadingTarget, method, formId) {
	this.id = id;
	this.url = url;
	this.callback = callback;
	this.formId = formId;
	this.target = target;
	this.loadingTarget = loadingTarget;
	
	if (method != undefined) {
		this.method = method
	}
	else {
		this.method = "GET";	
	}
	
	this.isStopped = false;
	this.currentRetry = 0;
}


DBM.module.Common = {

	requests: new Array(), 
	//rootUrl: "http://www.dagbladet.no/api/blink/",
	rootUrl: "http://blink.dagbladet.no/gallery/",
	
	defaultLoadingHTML: '<img src="http://gfx.dagbladet.no/comments/loading.gif" />',
	
	retries: 3,
	
	currentRetry: 0,
	
	currentRequestUrl: "",
	
	timeout: 20000,
	
	currentRequest: "",
	
	currentFormId: "",
	
	currentLoadingTarget: "",
	
	currentTarget: "",
	
	currentCallback: "",
	
	currentMethod: "GET",
	
	currentRequestIsStopped: true,
	
	addRequest: function(id, url, callback, target, loadingTarget, method, formId) {

		if (this.requests.length <= 0) {
			this.requests = new Array();	
		}
		
		var request = new DBM.util.request(id.tId, url, callback, target, loadingTarget, method, formId);

		
		//alert("LENGDE" + this.requests.length + " " + id.tId);
		
		//alert(request.url + request);

		this.requests[id.tId] = request;
		
	},
	
	removeRequest: function(id) {
		//this.requests[id] = null;	
		this.requests[id].url = "";
		this.requests[id].formId = "";
		this.requests[id].target = "";
		this.requests[id].loadingTarget = "";
		this.requests[id].callback = "";
		this.requests[id].method = "GET";
		this.requests[id].currentRetry = 0;
		this.requests[id].isStopped = true;
	},
	
	getRequest: function(id) {
		return this.requests[id];
	},
	
	defaultCallback: { 
		success: function(o) {
			
			DBM.module.Common.removeRequest(o.tId);

		
		},  	
		failure: function(o) {

			//alert ("feil for " + o.tId + "\n"  + "på " + DBM.module.Common.requests[o.tId].currentRetry + ". forsøk" + "\n" + DBM.module.Common.requests[o.tId].url);
			
			DBM.module.Common.requests[o.tId].currentRetry
			if (DBM.module.Common.requests[o.tId].currentRetry < DBM.module.Common.retries && DBM.module.Common.requests[o.tId].url > '') {
				DBM.module.Common.requests[o.tId].currentRetry += 1;
				//alert ("Prover igjen for" + DBM.module.Common.requests[o.tId].currentRetry + " gang" + DBM.module.Common.requests[o.tId].method + " " + DBM.module.Common.requests[o.tId].url);
				//var request = YAHOO.util.Connect.asyncRequest(DBM.module.Common.requests[o.tId].method, DBM.module.Common.requests[o.tId].url, DBM.module.Common.requests[o.tId].callback);
				var request = YAHOO.util.Connect.asyncRequest(DBM.module.Common.requests[o.tId].method, DBM.module.Common.requests[o.tId].url, DBM.module.Common.requests[o.tId].callback);

				//alert(request);
				DBM.module.Common.addRequest(request , 
											 DBM.module.Common.requests[o.tId].url, 
											 DBM.module.Common.requests[o.tId].callback, 
											 DBM.module.Common.requests[o.tId].target, 
											 DBM.module.Common.requests[o.tId].loadingTarget, 
											 DBM.module.Common.requests[o.tId].method);
				DBM.module.Common.requests[request.tId].currentRetry = DBM.module.Common.requests[o.tId].currentRetry;
				DBM.module.Common.removeRequest(o.tId);
				//DBM.module.Common.requests[o.tId].isStopped = false;
			}
			else {
				//alert("fjerner det ");
				DBM.util.createDiv(DBM.module.Common.requests[o.tId].loadingTarget, "");
				DBM.module.Common.removeRequest(o.tId);
			}
		},  	
		timeout: this.timeout 	 
	}
	
}



// Show the complaint form
YAHOO.widget.Effect = function(el) {
	this.oEl = YAHOO.util.Dom.get(el);
	this.height = parseInt(YAHOO.util.Dom.getStyle(this.oEl,'height'));
	this.width = parseInt(YAHOO.util.Dom.getStyle(this.oEl,'width'));
};

YAHOO.widget.Effect.prototype.BlindUp = function(iTimer, onComplete) {
	var timer = iTimer || 0.3;
	this.oEl.style.overflow = 'hidden';
	var blind = new YAHOO.util.Anim(this.oEl, { height: { to:0} }, timer, YAHOO.util.Easing.easeOut);
	if ( onComplete ) {
		blind.onComplete.subscribe(onComplete);
	}
	blind.animate();
};

YAHOO.widget.Effect.prototype.BlindDown = function(toHeight, iTimer, onComplete) {
	this.oEl.style.visibility = 'hidden';
	this.oEl.style.overflow = 'hidden';
	this.oEl.style.height = '0';
	//var height = parseInt(YAHOO.util.Dom.getStyle(this.oEl,'height'));
	this.oEl.style.height = '';
	this.oEl.style.visibility = 'visible';
	var timer = iTimer || 0.3;
	var blind = new YAHOO.util.Anim(this.oEl, { height: { to:toHeight, from:0} }, timer, YAHOO.util.Easing.easeOut);

	var that = this;
	blind.onComplete.subscribe(
		function() {
			that.oEl.style.overflow = '';
			//alert(that.oEl.style.overflow);
		}
	);
	/*if ( onComplete ) {
		blind.onComplete.subscribe(onComplete);
	}*/
	blind.animate();
};

YAHOO.widget.Effect.prototype.yoyo = function(text, iTimer, onComplete) {
	//this.oEl.style.overflow = 'hidden';
	var height = parseInt(YAHOO.util.Dom.getStyle(this.oEl,'height'));
	var timer = iTimer || 0.3;
	var yoyo = new YAHOO.util.Anim(this.oEl, { height: { to:0} }, timer, YAHOO.util.Easing.easeOut);
	var that = this;
	yoyo.onComplete.subscribe(
		function() {
			that.oEl.style.visibility = 'hidden';
			//that.oEl.style.overflow = 'hidden';
			that.oEl.style.height = '';
			that.oEl.innerHTML = text;
			var height = parseInt(YAHOO.util.Dom.getStyle(that.oEl,'height'));
			that.oEl.style.height = '0';
			that.oEl.style.visibility = 'visible';
			var blind = new YAHOO.util.Anim(that.oEl, { height: { to:height, from:0} }, timer, YAHOO.util.Easing.easeOut);
			if ( onComplete ) {
				blind.onComplete.subscribe(onComplete);
			}
			blind.animate();
		}
	);
	yoyo.animate();
};


DBM.module.Comments = {
	
	authUrl: "http://www.dagbladet.no/konto/",
	
	commentsTarget: "comments_container",
	
	commentsFormTarget: "comments_form_container",
	
	currentCommentId: "",
	
	modulePath: "",
	
	discussionId: "",
	
	responseObject: "",
	
	switchedContent: "",
	
	addCommentVoteCallback: {
		 success: function(o) {
		 	DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, o.responseText);
		  	DBM.module.Common.defaultCallback.success(o);
		  	var div = new DBM.util.getObj("pointsclicker_"+ DBM.module.Comments.currentCommentId);
			var a = div.obj.childNodes[0];
			a.className = 'pointclicker-faded';
			a.onclick = function() {return false;}
		  },  	
		  failure: function(o) {
		  	DBM.module.Common.defaultCallback.failure(o);
		  },  	
		  timeout: DBM.module.Common.timeout
	},
	
	addCommentVote: function (commentId, voteCount) {
		
		this.currentCommentId = commentId;
				
		DBM.util.createDiv(DBM.module.Common.currentLoadingTarget, DBM.module.Common.defaultLoadingHTML);
		
		var target = "points_" + commentId;
		var loadingTarget = "points_" + commentId;
		var callback = this.addCommentVoteCallback;
		var url = DBM.module.Common.rootUrl+  DBM.module.Comments.modulePath + "/?op=AddCommentVote&commentId=" + commentId + "&vote=1&voteCount=" + voteCount;
		var tId = YAHOO.util.Connect.asyncRequest('GET', url, callback);
		
		DBM.module.Common.addRequest(tId, url, callback, target, loadingTarget, "GET");
		
	},
	
	navigateCallback: {
		success: function(o) {
			if (o.responseText.length > 0) {
				DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, o.responseText);
			}
			else {
		  		DBM.module.Common.defaultCallback.failure(o);
		  	}
			DBM.module.Common.defaultCallback.success(o);
			//ss.scrollNow("comments");	
		},
	
		failure: function(o) {
			DBM.module.Common.defaultCallback.failure(o);
		  	if (DBM.module.Common.requests[o.tId].isStopped) {
			  	errorElement = document.getElementById("navigationError");
			  	
			  	if (errorElement) {
				  	errorElement.className = "errormessage";
				  	errorElement.innerHTML = "Kommentarsystemet svarer ikke. Vennligst prøv igjen.";
			  	}
			  	else {
			  		//alert("Kommentarsystemet svarer ikke. Vennligst prøv igjen " + o.status +  " " + o.statusText + " tekst: " + o.responseText);
			  	}
		  	}
		},  	
		timeout: DBM.module.Common.timeout
		
	},
	
	
	// The callback object for listing comments
	commentsListCallback: {  	
		  success: function(o) {
		  	if (o.responseText.length > 0) {
				DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, o.responseText);
				
				if (o.argument.commentId != undefined && o.argument.commentId != "" ) {
					window.location = "#comment_" + o.argument.commentId;
				}
				
				var source = document.getElementById("comments_total");
				var el1 = document.getElementById("ncomments_top");
				var el2 = document.getElementById("ncomments_bottom");
				
				if (source && el1 && el2) {
					if (source == "") {
						el1.innerHTML = "0";	
						el2.innerHTML = "0";
					}
					else {
						el1.innerHTML = source.innerHTML;	
						el2.innerHTML = source.innerHTML;	
					}
				}
				
				
		  	}
		  	else {
		  		DBM.module.Common.defaultCallback.failure(o);
		  	}
		  	DBM.module.Common.defaultCallback.success(o);
		  },  	
		  failure: function(o) {
		   	//alert("kunne ikke laste");
		  	DBM.module.Common.defaultCallback.failure(o);
		  	if (DBM.module.Common.requests[o.tId].isStopped) {
			  	errorElement = document.getElementById("navigationError");
			  	
			  	if (errorElement) {
				  	errorElement.className = "errormessage";
				  	errorElement.innerHTML = "Kommentarsystemet svarer ikke. Vennligst prøv igjen.";
			  	}
			  	/*else {
			  		DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, "");
			  	}*/
		  	}
		  },  	
		  timeout: DBM.module.Common.timeout,
		argument: {commentId: ""} 	
	},
	
	// window.location = "#comment_345345";
	
	// Inserts comments as a part of the page
	insertComments: function (discussionId, target, loadingTarget, page, orderType, loadingHTML, callback, tag, commentId) {

		if (loadingTarget == undefined) {
			loadingTarget = this.commentsTarget;	
		}
		
		if (target != undefined) {
			this.commentsTarget = target;	
		}
		
		
		if (commentId != undefined) {
			directString = '&commentId=' + commentId;	
			this.commentsListCallback.argument.commentId = commentId;	
		}
		else {
			directString = '';	
		}
		
		target = this.commentsTarget;
		
		if (loadingHTML == undefined) {
			loadingHTML = DBM.module.Common.defaultLoadingHTML;	
		}
		
		if (page == undefined) {
			page = 1;
		}
		
		if (page == this.commentsListCallback) {
			callback = 1;
		}
		
		if (callback == undefined || callback == '') {
			callback = this.commentsListCallback
		}
		
		if (parseInt(orderType)) {
			
			var orderTypeString = "&orderType=" + orderType;	

		}
		else {
			orderType = "";
			var orderTypeString = "";	
		}

		DBM.util.createDiv(loadingTarget, loadingHTML);
		
		if (tag == undefined || tag == "") {
			
			url = DBM.module.Common.rootUrl +  DBM.module.Comments.modulePath + "/?op=ViewComments&discussionId=" + discussionId + orderTypeString + "&page=" + page + directString;
		}
		else {
			url = DBM.module.Common.rootUrl +  DBM.module.Comments.modulePath + "/?op=ViewCommentsByTag&tag=" + tag + orderTypeString + "&page=" + page;
		}
		
		tId = YAHOO.util.Connect.asyncRequest('GET', url, callback); 
		DBM.module.Common.addRequest(tId, url, callback, target, loadingTarget, "GET");
	
	},
	
	// A wrapper function for insertComments, to include scrolling if necessary
	navigateComments: function (discussionId, divId, loadingDivId, page, doScroll, tag) {
		loadingHTML = '<a class="button loading">' + page + '</a>';
		
		var orderType="";
		if (doScroll) {
			location.hash = divId;
	    	this.insertComments(discussionId, divId, loadingDivId, page, orderType, loadingHTML, this.navigateCallback, tag);
		}
		else {
			this.insertComments(discussionId, divId, loadingDivId, page, orderType, loadingHTML, this.commentsListCallback, tag);
		}
	},
	
	// The callback object for comment forms
	commentsFormCallback: {   
		success: function(o) {

			DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, o.responseText);
		  	DBM.module.Common.defaultCallback.success(o);
		  	
		  	var element = document.getElementById("discussionSourceUrl");
		  	if (element) {
		  		if (element.value == "") {
		  			element.value = top.location;	
		  		}	
		  	}
		  	
		  
		  	//var multi_selector = new MultiSelector( document.getElementById( 'files_list' ), 5 );	
			//multi_selector.addElement( document.getElementById( 'my_file_element' ) );
		  	
		  },  	
		  failure: function(o) { 
		  	DBM.module.Common.defaultCallback.failure(o);
		  	if (DBM.module.Common.requests[o.tId].isStopped) {
			  	errorElement = document.getElementById("navigationError");
			  	if (errorElement) {
				  	errorElement.className = "errormessage";
				  	//errorElement.innerHTML = "Kommentarsystemet svarer ikke. Vennligst forsøk på nytt"; // Vennligst prøv igjen " + o.status +  " " + o.statusText + " " + o.responseText;
			  	}
			  	else {
			  		
			  		DBM.util.createDiv(DBM.module.Common.requests[o.tId].target, "");
			  		//alert("KOMMENTARSKJEMA: Kommentarsystemet svarer ikke. Vennligst prøv igjen " + o.status +  " " + o.statusText + " " + o.responseText);
			  	}
		  	}
		  },  	
		  timeout: DBM.module.Common.timeout
	},
	
	// Inserts a comment form where necessary
	insertCommentsForm: function (discussionId, target, parentId, loadingTarget, loadingHTML) {
		
		if (parentId != undefined) {
			parentIdString = "&parentId=" + parentId;
			
			parentTitleElement = document.getElementById("commenttitle_link_"  + parentId);
			if (parentTitleElement && parentTitleElement.innerHTML != "" && parentTitleElement.innerHTML != undefined) {
				titleString = "&title=" + escape("RE: " + 	parentTitleElement.innerHTML);
			}
			else {
				titleString = "";	
			}
				
		}
		else {
			parentIdString = "";
			titleString = "";
		}
		
		if (discussionId == undefined) {
			discussionId = this.discussionId;	
		}
		
		if (target != undefined) {
			this.commentsFormTarget = target;	
		}
		else {
			target = this.commentsFormTarget;	
		}
		
		if (loadingTarget == undefined) {
			loadingTarget = this.commentsFormTarget;	
		}
		
		if (loadingHTML == undefined) {
			loadingHTML = DBM.module.Common.defaultLoadingHTML;	
		}
		
		DBM.util.createDiv(loadingTarget, loadingHTML);

		var callback = this.commentsFormCallback;
		
		var url = DBM.module.Common.rootUrl +  DBM.module.Comments.modulePath + "/?op=NewComment&discussionId=" + discussionId + parentIdString + titleString;
		var tId = YAHOO.util.Connect.asyncRequest('GET', url, callback); 
		
		DBM.module.Common.addRequest(tId, url, callback, target, loadingTarget, "GET");
	
		
		return false;
	},
	
	// Submits a comment form
	submitCommentForm: function (formId, target, loadingTarget, commentId, loadingHTML) {

		if (target != undefined) {
			this.commentsFormTarget = target;	
		}
		
		if (loadingTarget == undefined) {
			loadingTarget = this.commentsFormTarget;	
		}
		
		if (loadingHTML == undefined) {
			loadingHTML = DBM.module.Common.defaultLoadingHTML;	
		}
		
		if (commentId != undefined && commentId != "") {
		    this.submitCommentFormUploadCallback.argument.commentId = commentId;	
		    this.submitCommentFormUploadCallback.argument.target = "feedback_" + commentId;
		}
		else {
			this.submitCommentFormUploadCallback.argument.commentId = "";
			this.submitCommentFormUploadCallback.argument.target = "comments_form_container";
		}
		

		//DBM.util.createDiv(loadingTarget, loadingHTML);

		var formObject = document.getElementById(formId);	
		YAHOO.util.Connect.setForm(formObject, true, true);  	
	
	
	
		var tId = YAHOO.util.Connect.asyncRequest('POST', DBM.module.Common.rootUrl +  DBM.module.Comments.modulePath + "/", this.submitCommentFormUploadCallback);

	},
	
	// The callback object for submitting a comment form
	submitCommentFormCallback: { 
		success: function(o) {
	
			DBM.util.createDiv(o.argument.target, o.responseText);
	
			var element = document.getElementById('updateData');
			if (element) {
				for (i=0; i<element.childNodes.length; i++) {
					node = element.childNodes[i];
					//alert(node.value + " " + node.id);
					if (node.id=="discussionId") {
						var discussionId = node.value;
					}
				}
				DBM.module.Comments.insertComments(discussionId, "comments_container", "commentsfooter")
			}
			
			var element = document.getElementById("discussionSourceUrl");
		  	if (element) {
		  		if (element.value == "") {
		  			element.value = top.location;	
		  		}	
		  	}
		}, 
		
		failure: function(o) {
			alert ("Kommentarsystemet kunne ikke lagre din kommentar. Vennligst prøv igjen");
		},
		timeout: DBM.module.Common.timeout,
		argument: {target: this.commentsFormTarget, commentId: ""} 
	},
	
	submitCommentFormUploadCallback: { 
		upload: function(o) {
			
			//alert(DBM.module.Comments.commentsFormTarget + o.argument.commentId + o.tId);
				//alert("ferdig" + o.responseText);

			
			/*try {
				response = eval ( "(" + o.responseText + ")" );
				
				//DBM.module.Comments.responseObject = response;
				
				
				//var response = DBM.module.Comments.responseObject;
				DBM.module.Comments.publishUnverifiedComment(response.commentId, response.emailAddress, response.commentTitle, response.commentBody);
			}
			catch(e) {*/
			    DBM.util.createDiv(o.argument.target, o.responseText);
				var element = document.getElementById('updateData');
				if (element) {
					
					
					
					for (i=0; i<element.childNodes.length; i++) {
						node = element.childNodes[i];
						//alert(node.value + " " + node.id);
						if (node.id=="discussionId") {
							var discussionId = node.value;
						}
					}
					DBM.module.Comments.insertComments(discussionId, "comments_container", "commentsfooter")
				}

				
				var element = document.getElementById("discussionSourceUrl");
			  	if (element) {
			  		if (element.value == "") {
			  			element.value = top.location;	
			  		}	
			  	}
			  	
			  	var commentId = document.getElementById("outputCommentId");
			  	
			  	
			  	if (commentId) {

			  		commentId = commentId.innerHTML;
			  		
			  		var emailAddress = document.getElementById("outputMailbackAddress");
				  	if (emailAddress) {
				  		emailAddress = emailAddress.innerHTML;
				  	}
				  	var commentTitle = document.getElementById("commentTitle").value;
				  	var commentBody = document.getElementById("commentBody").value;
				  	
				  	var parentId = document.getElementById("outputParentId");
				  	if (parentId) {
				  		parentId = parentId.innerHTML;
				  	}
				  	
				  	
				  	
				  	DBM.module.Comments.publishUnverifiedComment(commentId, emailAddress, commentTitle, commentBody, parentId);
			  	}
			  	
			//}
	

			
			
		},
		argument: {target: this.commentsFormTarget, commentId: ""} 
		
	},
	
	// Submits a comment form
	submitFeedbackForm: function (formObject) {
		
		var loadingTarget = "feedback_buttons";
		var loadingHTML = DBM.module.Common.defaultLoadingHTML;

		YAHOO.util.Connect.setForm(formObject); 
		var target = "feedback_container";

		DBM.util.createDiv(loadingTarget, loadingHTML);
		
		var callback = this.feedbackFormCallback;
		var url = DBM.module.Common.rootUrl + DBM.module.Comments.modulePath + "/"; 	 	
		var tId = YAHOO.util.Connect.asyncRequest('POST', url, callback);
		
		DBM.module.Common.addRequest(tId, url, callback, target, loadingTarget, "POST", formObject);
		
	},
	
	// The callback object for submitting a comment form
	feedbackFormCallback: { 
		success: function(o) {
			//alert(o.responseText);
			
			var response = eval ( "(" + o.responseText + ")" );
			
			var element = document.getElementById("feedback_container_" + response.commentId);
			var z = new YAHOO.widget.Effect(element);
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			
			if (response.addClass) {
				YAHOO.util.Dom.addClass('comment_'  + response.commentId, response.addClass);
			}
			
			if (response.removeClass) {
				YAHOO.util.Dom.removeClass('comment_'  + response.commentId, response.removeClass);
			}
			
			var messageText = "";
			if (response.successText) {
				//var messageElement = document.getElementById("message_" + response.commentId);
				//YAHOO.util.Dom.addClass(messageElement,'success_message');
				//messageElement.innerHTML = response.successText;
				messageText = '<span class="success_message">' + response.successText + '</span>';
			}
			else if (response.errorText) {
				//var messageElement = document.getElementById("message_" + response.commentId);
				//YAHOO.util.Dom.addClass(messageElement,'error_message');
				//messageElement.innerHTML = response.errorText;
				messageText = '<span class="error_message">' + response.errorText + '</span>';
			}
			else if (response.errors) {
				//var messageElement = document.getElementById("message_" + response.commentId);
				//YAHOO.util.Dom.addClass(messageElement,'error_message');
				messageText = '<span class="error_message">';
				for(var i = 0; i < response.errors.length; i++) {
					if (i >0) {
						//messageElement.innerHTML += ", ";
						messageText += ", ";
					}
					//messageElement.innerHTML += response.errors[i].errorText;
					messageText += response.errors[i].errorText;
				}
				messageText += '</span>';
			}
			
			if (messageText != "") {
				var fn = function() {
					var z = new YAHOO.widget.Effect(element);
					element.innerHTML = '';
					
					z.BlindDown(50);
					element.innerHTML = '<div class="feedback">' + messageText + '</div>';
				}
				z.BlindUp(0.2, fn);
			}
			else {
				z.BlindUp(0.2);
			}
			
			
			//z.yoyo('<div class="feedback">' + messageText + '</div>');
			
			// Close other buttons
			DBM.module.Comments.closeButton("button_delete_" + response.commentId);
			DBM.module.Comments.closeButton("button_answer_" + response.commentId);
			DBM.module.Comments.closeButton("button_complain_" + response.commentId);
			
		}, 
		
		failure: function(o) {
			//alert ("Kommentaren ble ikke lagret. Vennligst prøv igjen");
		},
		timeout: DBM.module.Common.timeout
	},
	
	showHideComplainFeedback: function (commentId) {
		var element = document.getElementById("feedback_container_" + commentId);
		var button = document.getElementById("button_complain_" + commentId);
		
		if ( !YAHOO.util.Dom.hasClass(button,'button_feedback') ) {

			//var messageElement = document.getElementById("message_" + commentId);
			//messageElement.innerHTML = "";
			
			// Close other buttons
			this.closeButton("button_delete_" + commentId);
			this.closeButton("button_answer_" + commentId);
			this.openButton("button_complain_" + commentId);
			this.openButton("button_complain_" + commentId);
			var z = new YAHOO.widget.Effect(element);
			z.BlindDown(100);
			// Open feedback
			//YAHOO.util.Dom.removeClass(element,'collapsed');
			//YAHOO.util.Dom.addClass(element,'expanded');
			element.innerHTML = 
				'<div class="feedback">' +
					'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
						'<input type="hidden" name="op" value="AddCommentComplaint" />' + 
						'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
						'<input type="hidden" name="templateSet" value="json" />' + 
						'<fieldset class="radio">' +
						'<legend>' +
							'På hvilket grunnlag vil du klage inn denne kommentaren?' +
						'</legend>' +
						'<label for="complaintTypeSpam">' +
							'<input id="complaintTypeSpam" name="complaintType" type="radio" checked="checked" value="1"/>' +
							'Spam' +
						'</label>' +
						'<label for="complaintTypePersonal">' +
							'<input id="complaintTypePersonal" name="complaintType" type="radio" value="2"/>' +
							'Personangrep' +
						'</label>' +
						'<label for="complaintTypeRacial">' +
							'<input id="complaintTypeRacial" name="complaintType" type="radio" value="3"/>' +
							'Rasistisk' +
						'</label>' +
	
						'<label for="complaintTypePornography">' +
							'<input id="complaintTypePornography" name="complaintType" type="radio" value="4"/>' +
							'Pornografisk' +
						'</label>' +
						
						'<label for="complaintTypeOther">' +
							'<input id="complaintTypeOther" name="complaintType" type="radio" value="5"/>' +
							'Annet' +
						'</label>' +
					'</fieldset>' +
					'<div id="feedback_buttons">' +
					'<input type="submit" name="sendComplaint" value="Send klage" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideComplainFeedback(\'' + commentId + '\');return false;" />' +
					'</div>' +
					'</form>';
				'</div>';
			
		}
		else {
			// Close feeback
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			this.closeButton("button_complain_" + commentId);
			var z = new YAHOO.widget.Effect(element);
			z.BlindUp();
			element.innerHTML = "";
			
		}
	},
	
	showHideDeleteFeedback: function (commentId) {
		var element = document.getElementById("feedback_container_" + commentId);
		var button = document.getElementById("button_delete_" + commentId);
		
		if ( !YAHOO.util.Dom.hasClass(button,'button_feedback') ) {
			
			//var messageElement = document.getElementById("message_" + commentId);
			//messageElement.innerHTML = "";
			
			// Close other buttons
			this.closeButton("button_answer_" + commentId);
			this.closeButton("button_complain_" + commentId);
			this.openButton("button_delete_" + commentId);
			var z = new YAHOO.widget.Effect(element);
			z.BlindDown(65);
			// Open feedback
			//YAHOO.util.Dom.removeClass(element,'collapsed');
			//YAHOO.util.Dom.addClass(element,'expanded');
			element.innerHTML =
				'<div class="feedback">' +
					'<b>Ønsker du å fjerne kommentaren helt?</b>' +
					'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
					'<input type="hidden" name="op" value="AdminDeleteComment" />' + 
					'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
					'<input type="hidden" name="templateSet" value="json" />' + 
					'<div id="feedback_buttons">' +
					'<input type="submit" name="sendComplaint" value="Slett kommentar" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideDeleteFeedback(\'' + commentId + '\');return false;" />' +
					'</div>' +
					'</form>' +
				'</div>';
			
			
		}
		else {
			// Close feeback
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			var z = new YAHOO.widget.Effect(element);
			z.BlindUp();
			this.closeButton("button_delete_" + commentId);
			element.innerHTML = "";
		}
	},
	
	showHideStarFeedback: function (commentId, mode) {
		var element = document.getElementById("feedback_container_" + commentId);
		var button = document.getElementById("button_star_" + commentId);
		
		if ( !YAHOO.util.Dom.hasClass(button,'button_feedback') ) {
			
			//var messageElement = document.getElementById("message_" + commentId);
			//messageElement.innerHTML = "";
			
			// Close other buttons
			this.closeButton("button_answer_" + commentId);
			this.closeButton("button_complain_" + commentId);
			this.openButton("button_star_" + commentId);
			this.closeButton("button_destar_" + commentId);
			this.closeButton("button_delete_" + commentId);
			var z = new YAHOO.widget.Effect(element);
			z.BlindDown(65);
			// Open feedback
			//YAHOO.util.Dom.removeClass(element,'collapsed');
			//YAHOO.util.Dom.addClass(element,'expanded');
			
			if (mode == 1) {
				element.innerHTML =
					'<div class="feedback">' +
						'<b>Du kan gi stjerne til innlegg du ønsker skal være mer synlige</b>' +
						'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
						'<input type="hidden" name="op" value="AdminStarComment" />' + 
						'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
						'<input type="hidden" name="templateSet" value="json" />' + 
						'<div id="feedback_buttons">' +
						'<input type="submit" name="sendStar" value="Gi stjerne" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideStarFeedback(\'' + commentId + '\');return false;" />' +
						'</div>' +
						'</form>' +
					'</div>';
			}
			else {
				element.innerHTML =
					'<div class="feedback">' +
						'<b>Du kan fjerne stjernen til innlegg du ikke synes fortjener den</b>' +
						'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
						'<input type="hidden" name="op" value="AdminRemoveStarComment" />' + 
						'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
						'<input type="hidden" name="templateSet" value="json" />' + 
						'<div id="feedback_buttons">' +
						'<input type="submit" name="sendStar" value="Fjern stjerne" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideStarFeedback(\'' + commentId + '\');return false;" />' +
						'</div>' +
						'</form>' +
					'</div>';
			}
			
			
		}
		else {
			// Close feeback
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			var z = new YAHOO.widget.Effect(element);
			z.BlindUp();
			this.closeButton("button_star_" + commentId);
			element.innerHTML = "";
		}
	},
	
	showHideDestarFeedback: function (commentId, mode) {
		var element = document.getElementById("feedback_container_" + commentId);
		var button = document.getElementById("button_destar_" + commentId);
		
		if ( !YAHOO.util.Dom.hasClass(button,'button_feedback') ) {
			
			//var messageElement = document.getElementById("message_" + commentId);
			//messageElement.innerHTML = "";
			
			// Close other buttons
			this.closeButton("button_answer_" + commentId);
			this.closeButton("button_complain_" + commentId);
			this.closeButton("button_delete_" + commentId);
			this.openButton("button_destar_" + commentId);
			this.closeButton("button_star_" + commentId);
			var z = new YAHOO.widget.Effect(element);
			z.BlindDown(65);
			// Open feedback
			//YAHOO.util.Dom.removeClass(element,'collapsed');
			//YAHOO.util.Dom.addClass(element,'expanded');
			if (mode == 1) {
				element.innerHTML =
				'<div class="feedback">' +
					'<b>Du kan gi antistjerne til innlegg du ønsker skal skjules men ikke slettes</b>' +
					'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
					'<input type="hidden" name="op" value="AdminDestarComment" />' + 
					'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
					'<input type="hidden" name="templateSet" value="json" />' + 
					'<div id="feedback_buttons">' +
					'<input type="submit" name="sendStar" value="Gi antistjerne" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideDestarFeedback(\'' + commentId + '\');return false;" />' +
					'</div>' +
					'</form>' +
				'</div>';
			}
			else {
				element.innerHTML =
				'<div class="feedback">' +
					'<b>Du kan fjerne antistjernen til innlegg du ikke synes fortjener det</b>' +
					'<form onsubmit="javascript:DBM.module.Comments.submitFeedbackForm(this);return false;">' +
					'<input type="hidden" name="op" value="AdminRemoveDestarComment" />' + 
					'<input type="hidden" name="commentId" value="' + commentId + '" />' + 
					'<input type="hidden" name="templateSet" value="json" />' + 
					'<div id="feedback_buttons">' +
					'<input type="submit" name="sendStar" value="Fjern antistjerne" class="submit"/> eller <input type="submit" class="submit" name="cancelComplaint" value="Avbryt" onclick="javascript:DBM.module.Comments.showHideDestarFeedback(\'' + commentId + '\');return false;" />' +
					'</div>' +
					'</form>' +
				'</div>';	
			}
			
			
		}
		else {
			// Close feeback
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			var z = new YAHOO.widget.Effect(element);
			z.BlindUp();
			this.closeButton("button_destar_" + commentId);
			element.innerHTML = "";
		}
	},
	
	showHideAnswerFeedback: function (commentId, discussionId) {
		var element = document.getElementById("feedback_container_" + commentId);
		var button = document.getElementById("button_answer_" + commentId);
		
		if ( !YAHOO.util.Dom.hasClass(button,'button_feedback') ) {
			
			//var messageElement = document.getElementById("message_" + commentId);
			//messageElement.innerHTML = "";
			
			// Close other buttons
			this.openButton("button_answer_" + commentId);
			this.closeButton("button_complain_" + commentId);
			this.closeButton("button_delete_" + commentId);
			
			// Open feedback
			//YAHOO.util.Dom.removeClass(element,'collapsed');
			//YAHOO.util.Dom.addClass(element,'expanded');
			var z = new YAHOO.widget.Effect(element);
			z.BlindDown(400);
			element.innerHTML =
				'<div id="feedback_' + commentId + '" class="feedback">' +
				'</div>';
			this.insertCommentsForm(discussionId, "feedback_" + commentId, commentId);
			
			
		}
		else {
			// Close feeback
			//YAHOO.util.Dom.removeClass(element,'expanded');
			//YAHOO.util.Dom.addClass(element,'collapsed');
			var z = new YAHOO.widget.Effect(element);
			z.BlindUp();
			this.closeButton("button_answer_" + commentId);
			element.innerHTML = "";
		}
	},
	
	openButton: function (buttonId) {
		var button = document.getElementById(buttonId);
		YAHOO.util.Dom.addClass(buttonId,'button_feedback');
		YAHOO.util.Dom.removeClass(buttonId,'button');
	},
	
	closeButton: function (buttonId) {
		var button = document.getElementById(buttonId);
		YAHOO.util.Dom.removeClass(buttonId,'button_feedback');
		YAHOO.util.Dom.addClass(buttonId,'button');
	},
	
	init: function (in_discussionId, in_rootUrl, in_modulePath, in_listContainer, in_formContainer, in_commentId, in_authUrl) {
		
		
		if (in_discussionId != undefined) {
			DBM.module.Comments.discussionId = in_discussionId;	
		}
		
		if (in_rootUrl != undefined) {
			DBM.module.Common.rootUrl = in_rootUrl;	
		}
		
		if (in_authUrl != undefined) {
			DBM.module.Comments.authUrl = in_authUrl;	
		}
		//alert(DBM.module.Comments.authUrl);
			
		if (in_modulePath != undefined) {
			DBM.module.Comments.modulePath = in_modulePath;	
		}
				
		if (in_listContainer == undefined || in_listContainer == "") {
			in_listContainer = 	this.commentsTarget;
		}
		
		if (in_commentId == undefined) {
			var getCommentId = this.getVar("commentId");
			if (getCommentId > 0) {
				in_commentId = getCommentId;	
			}	
		}
		
		this.insertComments(in_discussionId, in_listContainer, this.commentsTarget, 1, '', DBM.module.Common.defaultLoadingHTML, this.commentsListCallback, '', in_commentId);

		
		if (in_formContainer == undefined || in_formContainer == "") {
			in_formContainer = this.commentsFormTarget;
		}
		
		this.insertCommentsForm(in_discussionId, in_formContainer);
	
		
	},
	
	showHideCommentForm: function () {
		
	},

	expandCollapseComment: function(in_commentId) {
		
		// Expand/collapse button
		var button = "collapse_" + in_commentId;
		
		// Elements which should collapse/expand
		var elements = new Array();
		elements[0] = "commentbody_" + in_commentId; 
		elements[1] = "commenttools_" + in_commentId; 
		elements[2] = "pointsclicker_" + in_commentId; 
		elements[3] = "commentpoints_" + in_commentId; 
		elements[4] = "commentbyline_" + in_commentId;
		//elements[5] = "profile_image_" + in_commentId;
		//elements[4] = "commentdata_" + in_commentId;
		
		var comment = "comment_" + in_commentId;
		if (YAHOO.util.Dom.hasClass(elements[0], "collapsed")) {
			YAHOO.util.Dom.removeClass(elements, "collapsed");
			YAHOO.util.Dom.addClass(button, "collapse");
			YAHOO.util.Dom.removeClass(button, "expand");
			YAHOO.util.Dom.addClass(comment, "comment");
			YAHOO.util.Dom.removeClass(comment, "morecomments");
			YAHOO.util.Dom.removeClass("profile_image_" + in_commentId, "collapsed");
		}
		else {
			YAHOO.util.Dom.addClass(elements, "collapsed");
			YAHOO.util.Dom.addClass(button, "expand");
			YAHOO.util.Dom.removeClass(button, "collapse");
			YAHOO.util.Dom.removeClass(comment, "comment");
			YAHOO.util.Dom.addClass(comment, "morecomments");
			YAHOO.util.Dom.addClass("profile_image_" + in_commentId, "collapsed");
		}
	},
	
	expandAll: function() {
		var elements = YAHOO.util.Dom.getElementsByClassName('setasexpanded', 'div', 'comments_container');
		
		if (YAHOO.util.Dom.hasClass(elements[0], "collapsed")) {
			
			YAHOO.util.Dom.removeClass(elements, "collapsed");
		
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpanded', 'a', 'comments_container');
			YAHOO.util.Dom.removeClass(elements, "collapsed");
			
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpanded', 'p', 'comments_container');
			YAHOO.util.Dom.removeClass(elements, "collapsed");
			
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpand', 'a', 'comments_container');
			YAHOO.util.Dom.addClass(elements, "collapse");
			YAHOO.util.Dom.removeClass(elements, "expand");
	
			var elements = YAHOO.util.Dom.getElementsByClassName('setascomment', 'div', 'comments_container');
			YAHOO.util.Dom.removeClass(elements, "morecomments");
			YAHOO.util.Dom.addClass(elements, "comment");
			
		}
		else {
			YAHOO.util.Dom.addClass(elements, "collapsed");
		
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpanded', 'a', 'comments_container');
			YAHOO.util.Dom.addClass(elements, "collapsed");
			
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpanded', 'p', 'comments_container');
			YAHOO.util.Dom.addClass(elements, "collapsed");
			
			var elements = YAHOO.util.Dom.getElementsByClassName('setasexpand', 'a', 'comments_container');
			YAHOO.util.Dom.addClass(elements, "expand");
			YAHOO.util.Dom.removeClass(elements, "collapse");
	
			var elements = YAHOO.util.Dom.getElementsByClassName('setascomment', 'div', 'comments_container');
			YAHOO.util.Dom.addClass(elements, "morecomments");
			YAHOO.util.Dom.removeClass(elements, "comment");
		}
		
		
	},
	
	
	getVar: function(name) {
		
		get_string = document.location.search;         
		return_value = '';
		
		do { //This loop is made to catch all instances of any get variable.
		name_index = get_string.indexOf(name + '=');
		
		if(name_index != -1)
		  {
		  get_string = get_string.substr(name_index + name.length + 1, get_string.length - name_index);
		  
		  end_of_value = get_string.indexOf('&');
		  if(end_of_value != -1)                
		    value = get_string.substr(0, end_of_value);                
		  else                
		    value = get_string;                
		    
		  if(return_value == '' || value == '')
		     return_value += value;
		  else
		     return_value += ', ' + value;
		  }
		} while(name_index != -1)
		
		//Restores all the blank spaces.
		space = return_value.indexOf('+');
		while(space != -1)
		  { 
		  return_value = return_value.substr(0, space) + ' ' + 
		  return_value.substr(space + 1, return_value.length);
						 
		  space = return_value.indexOf('+');
		  }
		
		return(return_value);        
     },
     
     
     /* DEMO FUNCTIONS - MUST BE REPLACED */
     /* --------------------------------- */
     /* --------------------------------- */
     /* --------------------------------- */
     
     
     focusOn: function(fieldName) {
		
		if (fieldName == 'new') {
			
			YAHOO.util.Dom.addClass('registered-user', 'faded');
			YAHOO.util.Dom.removeClass('new-user', 'faded');
			
		}
		else {
			YAHOO.util.Dom.addClass('new-user', 'faded');
			YAHOO.util.Dom.removeClass('registered-user', 'faded');
		}
		
	},
	
	activateField: function(fieldName) {

		if (fieldName == 'password') {
			var el = YAHOO.util.Dom.get('password');

			if (el.value > '') {
				YAHOO.util.Dom.addClass('new-user', 'faded');
				YAHOO.util.Dom.removeClass('registered-user', 'faded');
			}
			else {
				var el2 = YAHOO.util.Dom.get('signature');
				YAHOO.util.Dom.removeClass('new-user', 'faded');
				if (el2.value > '') {
					YAHOO.util.Dom.addClass('registered-user', 'faded');
				}
				
			}
		}
		else {
			var el = YAHOO.util.Dom.get('signature');
			
			if (el.value > '') {
				YAHOO.util.Dom.addClass('registered-user', 'faded');
				YAHOO.util.Dom.removeClass('new-user', 'faded');
			}
			else {
				var el2 = YAHOO.util.Dom.get('password');
				YAHOO.util.Dom.removeClass('registered-user', 'faded');
				if (el2.value > '') {
					YAHOO.util.Dom.addClass('new-user', 'faded');
				}
			}
			
		}
		
	},
	
	hideAds: function() {
		var adElements = YAHOO.util.Dom.getElementsByClassName('ad','div');
		YAHOO.util.Dom.addClass(adElements, 'hidden');
		
		YAHOO.util.Dom.addClass('ad-top', 'hidden');
	},
	
	showAds: function() {
		var adElements = YAHOO.util.Dom.getElementsByClassName('ad','div');
		
		YAHOO.util.Dom.removeClass(adElements, 'hidden');
	},
	
	showVerificationCode: function(emailAddress, userId, cellNo) {
				
		
		//YAHOO.util.Dom.removeClass("verifyCellFormContainer", "absolute-hidden");	
		
		YAHOO.util.Dom.addClass("user-terms", "absolute-hidden");
		YAHOO.util.Dom.addClass("privacy-terms", "absolute-hidden");
		
		document.getElementById("verifiedEmail").value = emailAddress;
		document.getElementById("verifiedCellNo").value = cellNo;
		document.getElementById("userId").value = userId;
		var anim = new YAHOO.util.Motion(
										"mobile-verifiation-scroller", 
										{ points: { by: [-420, 0] } },
										0.2,
										YAHOO.util.Easing.easeOut
										);

		anim.onComplete.subscribe(function() { 
			//YAHOO.util.Dom.addClass("registerUserFormContainer", "invisible");	
			YAHOO.util.Dom.removeClass("verifyCellFormContainer", "invisible");	
		});

		
			
		anim.animate();
		
		var focusElement = YAHOO.util.Dom.get("verificationCode");
		
		focusElement.focus();
	},

	previewComment: function() {

		var commentTitle = document.getElementById('comment-title').value;
		var commentBody = document.getElementById('comment-body').value;
		
		var button = YAHOO.util.Dom.get("button-container");
		button.innerHTML = "<img src='http://gfx.dagbladet.no/kommentarer/ajax-loader-bar.gif' />";
		
		YAHOO.util.Dom.removeClass('loader-container', 'hidden');
		
		var anim = new YAHOO.util.Anim(  
					'current-step' ,   
					{ opacity: {from: 1, to: 0 } },   
					0.5,   
					YAHOO.util.Easing.easeOut 
					);  
		anim.animate();
		
		anim.onComplete.subscribe(function() { 
	        var currentStep = YAHOO.util.Dom.get("current-step");
			var nextStep = YAHOO.util.Dom.get("step-2");
			var prevStep = YAHOO.util.Dom.get("step-1");
			prevStep.innerHTML = currentStep.innerHTML;
			currentStep.innerHTML = nextStep.innerHTML;
			nextStep.innerHTML = '';
			
			var targetTitle = YAHOO.util.Dom.get('preview-title');
			targetTitle.innerHTML = commentTitle;
			
			var targetBody = YAHOO.util.Dom.get('preview-body');
			targetBody.innerHTML = commentBody;

			
			var preview = YAHOO.util.Dom.get('preview-entry');
			var height = preview.offsetHeight;
			var padding = YAHOO.util.Dom.get('step-2-padding');
			padding.style.paddingTop = (280 - height) + "px";
			
			//alert(preview + " " + height + " " + " - " + preview.style.paddingTop);
			
			//YAHOO.util.Dom.addClass('current-step', 'comment-form-notice');
			
			var prevStepAnim = new YAHOO.util.ColorAnim(  
						'comment-step-1' ,   
						{ color: {from: '#000000', to: '#aaaaaa' } },   
						0.25
						);
			prevStepAnim.animate();
			
			var nextStepAnim = new YAHOO.util.ColorAnim(  
						'comment-step-2' ,   
						{ color: {from: '#aaaaaa', to: '#000000' } },   
						0.25
						);
			nextStepAnim.animate();
			
			
			var anim2 = new YAHOO.util.Anim(  
					'current-step' ,   
					{ opacity: {from: 0, to: 1 } },   
					0.5,   
					YAHOO.util.Easing.easeOut 
					);  
					
			anim2.onComplete.subscribe(function() { 
				YAHOO.util.Dom.addClass('loader-container', 'hidden');
				
				var buttons = YAHOO.util.Dom.get("button-container");
				var nextButtons = YAHOO.util.Dom.get("step-2-buttons");
				buttons.innerHTML = nextButtons.innerHTML;
			});
					
			anim2.animate();
	    });
		
		
		
		
		
		//var height = document.getElementById("preview-entry").offsetHeight;
	
		
		
		
		/*var attributes = { 
	        height: { to: height } 
	    }; 
	    var anim = new YAHOO.util.Anim('comments_form_container', attributes, 0.5, YAHOO.util.Easing.easeOut); 
    	
	     */
	    
    	anim.animate();
		
	},
	
	verifyCellNo: function() {

		// http://www.dagbladet.no/konto/?op=VerifyUser&response=json&serviceid=100&usr=12345678&vid=451&vcode=230245435&vstring=32350990809
		
		
		

		var emailAddress = document.getElementById("verifiedEmail").value;

		var userId = document.getElementById("userId").value;

		var verificationCode = document.getElementById("verificationCode").value;

		var cellNo = document.getElementById("verifiedCellNo").value;

		
		//var url = "http://www.dagbladet.no/konto/?op=VerifyUser&response=json&serviceid=101&userid=" + userId + "&verificationcode=" + verificationCode + "&verificationstring=" + cellNo + "&verificationid=102"; 
		var url = DBM.module.Comments.authUrl + "?op=VerifyUser&response=json&serviceid=101&userid=" + userId + "&verificationcode=" + verificationCode + "&verificationstring=" + cellNo + "&verificationid=102"; 
		
		//alert(url);
		var tId = YAHOO.util.Connect.asyncRequest('GET', url, this.verifyCellNoCallback);
		DBM.module.Common.addRequest(tId, url, DBM.module.Comments.verifyCellNoCallback, '',  '', "GET");
		 
	},
	
	verifyCellNoCallback: {
		success: function(o) {
			
			DBM.module.Common.defaultCallback.success(o);
			
			response = eval ( "(" + o.responseText + ")" );


			document.getElementById("verification-err").innerHTML = "";
						
			if (response.verified == true || response.verified == 1) {
				var token = document.getElementById("outputConfirmationToken").innerHTML;
				var emailAddress = document.getElementById("outputMailbackAddress").innerHTML;
				DBM.module.Comments.activateComment(token, emailAddress, true);
			}
			else if (response.errors) {
				
				//for ( var i=0, len=response.errors.length; i<len; ++i ){

					document.getElementById("verification-err").innerHTML = "Koden er feil. Prøv igjen, eller <a href='#'>send meg en ny kode</a>.";

				//}

			}
			else {
				alert("Noe gikk galt med mobilverifiseringen.");
			}
			
		},  	
		failure: function(o) {
			
			DBM.module.Common.defaultCallback.failure(o);
			
			alert("Feil ved registrering/innlogging. Vennligst prøv igjen, eller ta kontakt med support@dagbladet.no.");
		},  	
		timeout: DBM.module.Common.timeout,
		argument: {emailAddress: "", signature: "", cellNo: ""} 	
	},
	
	activateComment: function(token, emailAddress, displayMessage) {
		
		var url = DBM.module.Common.rootUrl +  DBM.module.Comments.modulePath + "/?op=ActivateComment&token=" + token + "&email=" + emailAddress;
		if (!displayMessage) {
			url = url + '&abortMessage=true';	
		}
		var tId = YAHOO.util.Connect.asyncRequest('GET', url, this.activateCommentCallback);
		this.activateCommentCallback.argument.displayMessage = displayMessage;
		DBM.module.Common.addRequest(tId, url, DBM.module.Comments.activateCommentCallback, '',  '', "GET");

	},
	
	activateCommentCallback: {
		success: function(o) {
			
			//alert(o.responseText);
			DBM.module.Common.defaultCallback.success(o);
			
			response = eval ( "(" + o.responseText + ")" );


			if (response.commentActivated == 1) {
				YAHOO.util.Dom.addClass('loader-container', 'hidden');
				
				var commentId = document.getElementById("outputCommentId").innerHTML;
				
				DBM.module.Comments.setFocusToComment(commentId, this.argument.displayMessage);
				
				
			}
			else {
				DBM.module.Common.defaultCallback.failure(o);
				
				//alert("Noe gikk galt med mobilverifiseringen.");
			}
			
		},  	
		failure: function(o) {
			
			DBM.module.Common.defaultCallback.failure(o);
			
			//alert("Feil ved registrering/innlogging. Vennligst prøv igjen, eller ta kontakt med support@dagbladet.no.");
		},  	
		timeout: DBM.module.Common.timeout,
		argument: {emailAddress: "", signature: "", cellNo: "", displayMessage: false} 	
	},
	
	setFocusToComment: function(commentId, displayMessage) {
		
		
		
		var newComment = YAHOO.util.Dom.get("preview-entry");
	
		
		var commentString = newComment.innerHTML;
		
		var activeCommentString = commentString.replace(/---COMMENTID---/g, commentId);

		
	
		
		newComment.innerHTML = activeCommentString;
		

		
		DBM.module.Comments.myPanel.hide();

		
		
		/*if (displayMessage) {
			YAHOO.util.Dom.removeClass("yellow_box", "absolute-hidden");
			var anim2 = new YAHOO.util.Anim(  
						'yellow_box' ,   
						{ opacity: {from: 0, to: 1 } },   
						2,   
						YAHOO.util.Easing.easeOut 
						); 
			anim2.animate();
		}*/
		//DBM.module.Comments.discussionId
		
		
		var discussionId = document.getElementById("outputDiscussionId");

		if (discussionId) {
			
			discussionId = discussionId.innerHTML;
			this.insertComments(DBM.module.Comments.discussionId, "comments_container", 'preview-entry', 1, '3', 'Vent...');
			this.insertCommentsForm(discussionId, "comments_form_container");
		}
		
	},

	publishComment: function() {
		
		YAHOO.util.Dom.removeClass('loader-container', 'hidden');
		
		
		var commentTitle = document.getElementById('comment-title').value;
		var commentBody = document.getElementById('comment-body').value;
		
		if (commentTitle != undefined && commentTitle > "" && commentBody != undefined && commentBody > "") {
			var targetTitle = YAHOO.util.Dom.get('preview-title');
			targetTitle.innerHTML = commentTitle;
				
			var targetBody = YAHOO.util.Dom.get('preview-body');
			targetBody.innerHTML = this.nl2br(commentBody);
			
			
			
			/*var button = YAHOO.util.Dom.get("button-container");
			button.innerHTML = "<img src='http://gfx.dagbladet.no/kommentarer/ajax-loader-bar.gif' />";*/
			
			
			
			var anim = new YAHOO.util.Anim(  
						'current-step' ,   
						{ opacity: {from: 1, to: 0 } },   
						0.5,   
						YAHOO.util.Easing.easeOut 
						);  
			anim.animate();
			
			document.location.href = '#comments';
			
			var preview = YAHOO.util.Dom.get('preview-entry');
			var height = preview.offsetHeight;
	
			preview.style.height = '0px';
			preview.style.minHeight = '0px';
			
			YAHOO.util.Dom.removeClass('preview-entry', 'absolute-hidden');
			
			var anim2 = new YAHOO.util.Anim(  
						'preview-entry' ,   
						{ height: {from: 0, to: height } },   
						0.3,   
						YAHOO.util.Easing.easeOut 
						); 
			anim2.animate();
			
			var anim2 = new YAHOO.util.Anim(  
						'preview-entry' ,   
						{ opacity: {from: 0, to: 1 } },   
						0.5,   
						YAHOO.util.Easing.easeOut 
						);
						
	
						
			anim2.onComplete.subscribe(function() { 
					preview.style.overflow = 'visible';
					//YAHOO.util.Dom.removeClass('mobile-verification', 'absolute-hidden');
					DBM.module.Comments.showBox();
					
					var elements = YAHOO.util.Dom.getElementsByClassName('discussion-entry', 'li');
					YAHOO.util.Dom.addClass(elements, 'fadeout');
					//var y=document.createElement("div");
					//y.id = 'mask';
					//document.getElementById("doc").appendChild(y);
	
					document.verifycellform.signature.focus()
					
				});
				
			anim2.animate();
		}
		else {
			
			alert("feil");
			
		}
		
		
		
		
		
	},
	

	publishUnverifiedComment: function(commentId, emailAddress, commentTitle, commentBody, parentId) {
		
		

		
		if (parentId == undefined) {
		
			var targetTitle = YAHOO.util.Dom.get('preview-title');
			targetTitle.innerHTML = commentTitle;
				
			var targetBody = YAHOO.util.Dom.get('preview-body');
			targetBody.innerHTML = this.nl2br(commentBody);
			
			var anim = new YAHOO.util.Anim(  
						'current-step' ,   
						{ opacity: {from: 1, to: 0 } },   
						0.5,   
						YAHOO.util.Easing.easeOut 
						); 
						
			anim.onComplete.subscribe(function() { 
					var currentStep = document.getElementById("current-step");
					YAHOO.util.Dom.addClass(currentStep, 'invisible');
					
				}); 
			anim.animate();
			
			
			YAHOO.util.Dom.addClass("yellow_box", "absolute-hidden");
			
			document.location.href = '#comments';
			
			YAHOO.util.Dom.removeClass('preview-entry', 'invisible');
			
			var preview = YAHOO.util.Dom.get('preview-entry');
			var height = preview.offsetHeight;
	
			preview.style.height = '0px';
			preview.style.minHeight = '0px';
			
			
			YAHOO.util.Dom.removeClass('preview-entry', 'absolute-hidden');
			
			var anim2 = new YAHOO.util.Anim(  
						'preview-entry' ,   
						{ height: {from: 0, to: height } },   
						0.3,   
						YAHOO.util.Easing.easeOut 
						); 
			anim2.animate();
			
			var anim2 = new YAHOO.util.Anim(  
						'preview-entry' ,   
						{ opacity: {from: 0, to: 1 } },   
						0.5,   
						YAHOO.util.Easing.easeOut 
						);
						
	
						
			anim2.onComplete.subscribe(function() { 
				
					DBM.module.Comments.checkUser(emailAddress);
				
					
					
				});
				
			anim2.animate();
		}
		else {
			
			var anim = new YAHOO.util.Anim(  
						'current-step' ,   
						{ opacity: {from: 1, to: 0 } },   
						0.5,   
						YAHOO.util.Easing.easeOut 
						); 
						
			anim.onComplete.subscribe(function() { 
					var currentStep = document.getElementById("current-step");
					YAHOO.util.Dom.addClass(currentStep, 'invisible');
					
				}); 
			anim.animate();
			
			DBM.module.Comments.checkUser(emailAddress);
		}

		
		
		
		
		
	},
	
	// The callback object for listing comments
	checkUserCallback: {  	
		  success: function(o) {
		  	
		  	
		  	
		  	DBM.module.Common.defaultCallback.success(o);
		  	
		  	response = eval ( "(" + o.responseText + ")" );
		  	
		  	// REMOVE

		  	if (response.exists == 404) {
		  		DBM.module.Comments.showRegistrationForm(this.argument.emailAddress);
		  	}
		  	else if (response.exists == 402) {
		  		DBM.module.Comments.showLoginForm(this.argument.emailAddress);
		  	}
		  	else {
		  		alert("Det oppstod en feil med din e-postadresse. Vennligst prøv på nytt.");
		  	}
		  	
		  },  	
		  failure: function(o) {
		  	DBM.module.Common.defaultCallback.failure(o);
		   	//alert("Feil ved registrering/innlogging. Vennligst prøv igjen, eller ta kontakt med support@dagbladet.no.");
		  },  	
		  timeout: DBM.module.Common.timeout,
		argument: {emailAddress: ""} 	
	},
	
	checkUser: function(emailAddress) {
		
		this.checkUserCallback.argument.emailAddress = emailAddress;
		var callback = this.checkUserCallback;
		
		
		//var url = "http://www.dagbladet.no/konto/?op=UserAvailable&response=json&serviceid=101&email=" + emailAddress; 	 	
		var url = DBM.module.Comments.authUrl + "?op=UserAvailable&response=json&serviceid=101&email=" + emailAddress; 	 	
		
		
		var tId = YAHOO.util.Connect.asyncRequest('POST', url, callback);
		DBM.module.Common.addRequest(tId, url, DBM.module.Comments.checkUserCallback, '',  '', "GET");
		/**/
	},
	
	showRegistrationForm: function(emailAddress) {
		var preview = YAHOO.util.Dom.get('preview-entry');
		preview.style.overflow = 'visible';
		/*YAHOO.util.Dom.removeClass('mobile-verification', 'absolute-hidden');
		var elements = YAHOO.util.Dom.getElementsByClassName('discussion-entry', 'li');
		YAHOO.util.Dom.addClass(elements, 'fadeout');
		var y=document.createElement("div");
		y.id = 'mask';
		document.getElementById("doc").appendChild(y);

		document.register-user-form.signature.focus();*/
		

		YAHOO.util.Dom.addClass("yellow_box", "absolute-hidden");
		

		location.hash = 'comments_container';
					
		
		DBM.module.Comments.hideAds();
		
	
		DBM.module.Comments.myPanel = new YAHOO.widget.Panel("myPanel", { 
			width:"400px",
			fixedcenter:true, 
			visible:false,
			close:false, 
			constraintoviewport:true, 
			draggable:true,
			zindex:999,
			modal:true
		});
		//DBM.module.Comments.myPanel.setHeader("Hei, du er ikke registrert hos oss ennå!");
		
		var html = YAHOO.util.Dom.get("mobile-verification").innerHTML;
		
		DBM.module.Comments.mobileVerificationHTML = html;
		
		
		YAHOO.util.Dom.get("mobile-verification").innerHTML = '';
		YAHOO.util.Dom.addClass("mobile-verification", "absolute-hidden");
		
		
		
		//DBM.module.Comments.myPanel.setBody("<p>Av sikkerhetshensyn vil vi gjerne vite hvem du er. Derfor ber vi deg om å oppgi mobiltelefonnummeret ditt.</p><p>Neste gang er det bare å logge på.</p>");
		DBM.module.Comments.myPanel.setBody(html);
		DBM.module.Comments.myPanel.render(document.body);
		DBM.module.Comments.myPanel.show();
		
		var focusElement = YAHOO.util.Dom.get("signature");
		focusElement.focus();
		
		// Initialize the temporary Panel to display while waiting for external content to load
		/*var panel2 = 
				new YAHOO.widget.Panel("wait",  
					{ width:"240px", 
					  fixedcenter:true, 
					  close:false, 
					  draggable:false, 
					  zindex:400,
					  modal:true,
					  visible:true
					} 
				);
		
		panel2.setHeader("Loading, please wait...");
		panel2.setBody('<img src="http://us.i1.yimg.com/us.yimg.com/i/us/per/gr/gp/rel_interstitial_loading.gif" />');
		panel2.render(document.body);*/
	},
	
	postComment: function(parentId, target) {
		
		DBM.module.Comments.submitCommentForm('newCommentForm_' + parentId, target, 'buttonrow_' + parentId, parentId);
	},
	
	showBox: function() {
		/*var panel2 = 
				new YAHOO.widget.Panel("wait",  
					{ width:"240px", 
					  fixedcenter:true, 
					  close:false, 
					  draggable:false, 
					  zindex:999,
					  modal:true,
					  visible:false
					} 
				);
		
		panel2.setHeader("Loading, please wait...");
		panel2.setBody('<img src="http://us.i1.yimg.com/us.yimg.com/i/us/per/gr/gp/rel_interstitial_loading.gif" />');
		panel2.render(document.body);
		panel2.show();
		return false;*/
		
		DBM.module.Comments.hideAds();
		
		
		DBM.module.Comments.myPanel = new YAHOO.widget.Panel("myPanel", { 
			width:"400px",
			fixedcenter:true, 
			visible:false,
			close:false, 
			constraintoviewport:true, 
			draggable:true,
			zindex:999,
			modal:true
		});
		//DBM.module.Comments.myPanel.setHeader("Hei, du er ikke registrert hos oss ennå!");
		
		var html = YAHOO.util.Dom.get("mobile-verification").innerHTML;
		YAHOO.util.Dom.get("mobile-verification").innerHTML = '';
		//DBM.module.Comments.myPanel.setBody("<p>Av sikkerhetshensyn vil vi gjerne vite hvem du er. Derfor ber vi deg om å oppgi mobiltelefonnummeret ditt.</p><p>Neste gang er det bare å logge på.</p>");
		DBM.module.Comments.myPanel.setBody(html);
		DBM.module.Comments.myPanel.render(document.body);
		DBM.module.Comments.myPanel.show();
		
		return false;

	},
	
	showConfirmSubscriptionForm: function() {


		//DBM.module.Comments.hideAds();
		
		
		/*DBM.module.Comments.confirmSubscriptionForm = new YAHOO.widget.Panel("confirmSubscriptionForm", { 
			width:"400px",
			fixedcenter:true, 
			visible:false,
			close:false, 
			constraintoviewport:true, 
			draggable:true,
			zindex:999,
			modal:true
		});*/
		//DBM.module.Comments.myPanel.setHeader("Hei, du er ikke registrert hos oss ennå!");
		var el = YAHOO.util.Dom.get("confirm-subscription-container");
		if (el) {
			var html = el.innerHTML;
			el.innerHTML = "";
		}
		
		

		DBM.module.Comments.confirmSubscriptionHTML = html;
		YAHOO.util.Dom.get("login-container").innerHTML = DBM.module.Comments.loginHTML;
		

		//YAHOO.util.Dom.get("confirm-subscription-container").innerHTML = '';
		DBM.module.Comments.myPanel.setBody(html);
		DBM.module.Comments.myPanel.render(document.body);
				
		DBM.module.Comments.myPanel.show();
		
		/*var focusElement = YAHOO.util.Dom.get("loginPassword");
		focusElement.focus();*/

	},
	
	confirmSubscription: function() {
		//this.loginUserCallback.argument.emailAddress = emailAddress;
	
		this.switchContent('confirm-subscription-feedback', DBM.module.Common.defaultLoadingHTML);
	
		
		//var url = "http://www.dagbladet.no/konto/"; 
		//var url = DBM.module.Comments.authUrl; 
		//var postVars = "op=LoginUser&response=json&serviceid=101&username=" + emailAddress + "&password=" + pwd;
		// PAYMENT
		var postVars = "op=HandleSubscribe&response=json&payment=1&username=" + DBM.module.Comments.varEmail + "&password=" + DBM.module.Comments.varPassword;
		var tId = YAHOO.util.Connect.asyncRequest('POST', DBM.module.Comments.authUrl, this.confirmSubscriptionCallback, postVars);
		DBM.module.Common.addRequest(tId, DBM.module.Comments.authUrl, DBM.module.Comments.confirmSubscriptionCallback, '',  '', "POST");
		
		
	
	},
		
	confirmSubscriptionCallback: {
		success: function(o) {
			
			// REMOVE
			//DBM.module.Comments.showVerificationCode(this.argument.emailAddress, "123abc0000003", this.argument.cellNo);
			//return true;
			DBM.module.Common.defaultCallback.success(o);
			response = eval ( "(" + o.responseText + ")" );

			DBM.module.Comments.switchContent('confirm-subscription-feedback', DBM.module.Common.defaultLoadingHTML);
			
			
			
			if (response.cell != null) {

				// Bekreft telefonnummer
				var confirmCell = YAHOO.util.Dom.get('confirmCellNo');
				
				
				var html = YAHOO.util.Dom.get("confirm-subscription-cell-container").innerHTML;
		
				DBM.module.Comments.confirmSubscriptionCellHTML = html;
				YAHOO.util.Dom.get("confirm-subscription-container").innerHTML = DBM.module.Comments.confirmSubscriptionHTML;

		
				
				//YAHOO.util.Dom.get("confirm-subscription-container").innerHTML = '';
				DBM.module.Comments.myPanel.setBody(html);
				DBM.module.Comments.myPanel.render(document.body);
						
				DBM.module.Comments.myPanel.show();
				
				
				var el = YAHOO.util.Dom.get("confirm-subscription-cell-container");
				if (el) el.innerHTML = '';
				
				var confirmCell = YAHOO.util.Dom.get('confirmCellNo');
				
				if (confirmCell) {
					confirmCell.value = response.cell;
					confirmCell.focus();
				}
				
				var confirmCellPrefix = YAHOO.util.Dom.get('confirmCellPrefix');
				
				if (confirmCellPrefix && response.prefix) {
					confirmCellPrefix.value = response.prefix;
				}

				
				
				/*var token = document.getElementById("outputConfirmationToken").innerHTML;
				var userId = document.getElementById("loginEmail").value;
				var emailAddress = document.getElementById("outputMailbackAddress").innerHTML;
				DBM.module.Comments.activateComment(token, emailAddress, false);*/
				
			}
			else if (response.errors) {
				/*for ( var i=0, len=response.errors.length; i<len; ++i ){

					if (response.errors[i] == 403) {
						document.getElementById("password-login-err").innerHTML = "Feil e-post/passord";
					}
					else if (response.errors[i] == 407) {
						DBM.module.Comments.showConfirmSubscriptionForm();
					}
					
				}*/
			}
			
			
			
		},  	
		failure: function(o) {
			DBM.module.Common.defaultCallback.failure(o);
			//alert("Feil ved registrering/innlogging. Vennligst prøv igjen, eller ta kontakt med support@dagbladet.no.");
		},  	
		timeout: DBM.module.Common.timeout,
		argument: {emailAddress: "", signature: "", cellNo: ""} 	
	},
	
	sendForSubscriptionConfirmation: function(resendCode) {

		this.switchContent('confirm-subscription-cell-feedback', DBM.module.Common.defaultLoadingHTML);
		
		if (resendCode) {
			var cellNo = DBM.module.Comments.varCellNo;
			var cellPrefix = DBM.module.Comments.varCellPrefix;		
		}
		else {
			var cellNo = YAHOO.util.Dom.get('confirmCellNo').value;
			var cellPrefix = YAHOO.util.Dom.get('confirmCellPrefix').value;
			
			DBM.module.Comments.varCellNo = cellNo;
			DBM.module.Comments.varCellPrefix = cellPrefix;
		}

		

		cellPrefix = cellPrefix.replace('+', '%2B');
		//var url = "http://www.dagbladet.no/konto/"; 
		//var url = DBM.module.Comments.authUrl; 
		//var postVars = "op=LoginUser&response=json&serviceid=101&username=" + emailAddress + "&password=" + pwd;
		// PAYMENT
		var postVars = "op=HandleSubscribe&response=json&sendverification=1&username=" + DBM.module.Comments.varEmail + "&password=" + DBM.module.Comments.varPassword + "&prefix=" + cellPrefix + "&t=1&cell=" + cellNo;

		
		if (!resendCode) {
			var tId = YAHOO.util.Connect.asyncRequest('POST', DBM.module.Comments.authUrl, this.sendForSubscriptionConfirmationCallback, postVars);
			DBM.module.Common.addRequest(tId, DBM.module.Comments.authUrl, DBM.module.Comments.sendForSubscriptionConfirmationCallback, '',  '', "POST");
		}
		else {
			var tId = YAHOO.util.Connect.asyncRequest('POST', url, this.resendSubscriptionConfirmationCallback, postVars);
			DBM.module.Common.addRequest(tId, url, DBM.module.Comments.resendSubscriptionConfirmationCallback, '',  '', "POST");
		}
	
	},
	
	sendForSubscriptionConfirmationCallback: {
		success: function(o) {
			
			// REMOVE
			//DBM.module.Comments.showVerificationCode(this.argument.emailAddress, "123abc0000003", this.argument.cellNo);
			//return true;
			DBM.module.Common.defaultCallback.success(o);
			response = eval ( "(" + o.responseText + ")" );

			DBM.module.Comments.switchContent('confirm-subscription-cell-feedback', DBM.module.Common.defaultLoadingHTML);
			if (response.codesendt != null) {
				
				//confirm-subscription-code-container
				var html = YAHOO.util.Dom.get("confirm-subscription-code-container").innerHTML;
		
				DBM.module.Comments.confirmSubscriptionCodeHTML = html;
				YAHOO.util.Dom.get("confirm-subscription-cell-container").innerHTML = DBM.module.Comments.confirmSubscriptionCellHTML;

		
				
				YAHOO.util.Dom.get("confirm-subscription-code-container").innerHTML = '';
				DBM.module.Comments.myPanel.setBody(html);
				DBM.module.Comments.myPanel.render(document.body);
						
				DBM.module.Comments.myPanel.show();
				
				
				var focusElement = YAHOO.util.Dom.get('confirmCellCode');
				if (focusElement) {
					focusElement.focus();
				}	
				
			}
			else if (response.errors) {
				for ( var i=0, len=response.errors.length; i<len; ++i ){

					if (response.errors[i] == 504) {
						document.getElementById("confirm-subscription-cell-err").innerHTML = "Ugyldig telefonnummer. Prøv igjen.";
					}else if (response.errors[i] == 516) {
						document.getElementById("confirm-subscription-cell-err").innerHTML = "Ugyldig landskode. Prøv igjen.";
					}
					else {
						document.getElementById("confirm-subscription-cell-err").innerHTML = "Ukjent feil. Ta kontakt med support@dagbladet.no";
					}
					
				}
			}
			
			
			
		},  	
		failure: function(o) {
			DBM.module.Common.defaultCallback.failure(o);
			//alert("Feil ved registrering/innlogging. Vennligst prøv igjen, eller ta kontakt med support@dagbladet.no.");
		},  	
		timeout: DBM.module.Common.timeout,
		argument: {emailAddress: "", signature: "", cellNo: ""} 	
	},
	
	resendSubscriptionConfirmationCallback: {
		success: function(o) {
			
			// REMOVE
			//DBM.module.Comments.showVerificationCode(this.argument.emailAddress, "123abc0000003", this.argument.cellNo);
			//return true;
			DBM.module.Common.defaultCallback.success(o);
			response = eval ( "(" + o.responseText + ")" );

			if (response.codesendt != null) {
				
				//confirm-subscription-code-container
				YAHOO.util.Dom.get("resend-code-feedback").innerHTML = 'Kode sendt på nytt.';
				
			}
			else if (response.errors) {
				for ( var i=0, len=response.errors.length; i<len; ++i ){

					if (response.errors[i] == 504) {
						document.getElementById("confirm-subscription-cell-err").innerHTML = "Ugyldig telefonnummer. Prøv igjen.";
					}else if (response.errors[i] == 516) {
						document.getElementById("confirm-subscription-cell-err").innerHTML = "Ugyldig landskode. Prøv igjen.";
					}
					else {
						document.getElementById("confirm-subscription-cell-err").innerHTML = "Ukjent feil. Ta kontakt med support@dagbladet.no";
					}
					
				}
			}
			
			
			
		},  	
		failure: function(o) {
			DBM.module.Common.defaultCallback.failure(o);
			//alert("Feil ved registrering/innlogging. Vennligst prøv igjen, eller ta kontakt med support@dagbladet.no.");
		},  	
		timeout: DBM.module.Common.timeout,
		argument: {emailAddress: "", signature: "", cellNo: ""} 	
	},
	
	sendSubscriptionConfirmationCode: function() {

		this.switchContent('confirm-subscription-code-feedback', DBM.module.Common.defaultLoadingHTML);
		
		var cellCode = YAHOO.util.Dom.get('confirmCellCode').value;
		
		var cellNo = DBM.module.Comments.varCellNo;
		var cellPrefix = DBM.module.Comments.varCellPrefix;
		cellPrefix = cellPrefix.replace('+', '%2B');
		
		//var url = "http://www.dagbladet.no/konto/"; 
		//var url = DBM.module.Comments.authUrl; 
		
		// PAYMENT
		var postVars = "op=HandleSubscribe&response=json&doverify=1&username=" + DBM.module.Comments.varEmail + "&password=" + DBM.module.Comments.varPassword + "&prefix=" + cellPrefix + "&cell=" + cellNo + "&code=" + cellCode;

		var tId = YAHOO.util.Connect.asyncRequest('POST', DBM.module.Comments.authUrl, this.sendSubscriptionConfirmationCodeCallback, postVars);
		DBM.module.Common.addRequest(tId, DBM.module.Comments.authUrl, DBM.module.Comments.sendSubscriptionConfirmationCodeCallback, '',  '', "POST");
	
	},
	
	sendSubscriptionConfirmationCodeCallback: {
		success: function(o) {
			
			// REMOVE
			//DBM.module.Comments.showVerificationCode(this.argument.emailAddress, "123abc0000003", this.argument.cellNo);
			//return true;
			DBM.module.Common.defaultCallback.success(o);
			response = eval ( "(" + o.responseText + ")" );

			DBM.module.Comments.switchContent('confirm-subscription-code-feedback', DBM.module.Common.defaultLoadingHTML);
			

			if (response.userid != null && response.verified != null) {
				
				//confirm-subscription-code-container
				YAHOO.util.Dom.get("confirm-subscription-code-container").innerHTML = DBM.module.Comments.confirmSubscriptionCodeHTML;
		
				var token = document.getElementById("outputConfirmationToken").innerHTML;
				var emailAddress = DBM.module.Comments.varEmail;
								
				DBM.module.Comments.activateComment(token, emailAddress, false);
				
				
			}
			else if (response.errors) {
				for ( var i=0, len=response.errors.length; i<len; ++i ){

					if (response.errors[i] == 508) {
						document.getElementById("confirm-subscription-code-err").innerHTML = "Ugyldig kode. Prøv igjen.";
					}
					else {
						document.getElementById("confirm-subscription-code-err").innerHTML = "Ukjent feil. Ta kontakt med support@dagbladet.no";
					}
					
				}
			}
			
			
			
		},  	
		failure: function(o) {
			DBM.module.Common.defaultCallback.failure(o);
			//alert("Feil ved registrering/innlogging. Vennligst prøv igjen, eller ta kontakt med support@dagbladet.no.");
		},  	
		timeout: 200000,
		argument: {emailAddress: "", signature: "", cellNo: ""} 	
	},
	
	endSubscription: function() {
		
		
		this.switchContent('confirm-subscription-feedback', DBM.module.Common.defaultLoadingHTML);
		
		var emailAddress = document.getElementById("loginEmail").value;
		var pwd = document.getElementById("loginPassword").value;

		//this.loginUserCallback.argument.emailAddress = emailAddress;
		
		//var url = "http://www.dagbladet.no/konto/"; 
		//var url = DBM.module.Comments.authUrl; 
		//var postVars = "op=LoginUser&response=json&serviceid=101&username=" + emailAddress + "&password=" + pwd;
		// PAYMENT
		var postVars = "op=HandleSubscribe&response=json&delete=1&username=" + DBM.module.Comments.varEmail + "&password=" + DBM.module.Comments.varPassword;
		var tId = YAHOO.util.Connect.asyncRequest('POST', DBM.module.Comments.authUrl, this.endSubscriptionCallback, postVars);
		DBM.module.Common.addRequest(tId, DBM.module.Comments.authUrl, DBM.module.Comments.endSubscriptionCallback, '',  '', "POST");

	},
	
	endSubscriptionCallback: {
		success: function(o) {
			
			DBM.module.Comments.switchContent('confirm-subscription-feedback', DBM.module.Common.defaultLoadingHTML);
			
			// REMOVE
			//DBM.module.Comments.showVerificationCode(this.argument.emailAddress, "123abc0000003", this.argument.cellNo);
			//return true;
			DBM.module.Common.defaultCallback.success(o);
			response = eval ( "(" + o.responseText + ")" );


			if (response.deleted != null) {
				
				DBM.module.Comments.abortMissionCallback.argument.abortType = "endSubscription";
				DBM.module.Comments.abortMission();
				
				
			}
			else if (response.errors) {
				/*for ( var i=0, len=response.errors.length; i<len; ++i ){

					if (response.errors[i] == 403) {
						document.getElementById("password-login-err").innerHTML = "Feil e-post/passord";
					}
					else if (response.errors[i] == 407) {
						DBM.module.Comments.showConfirmSubscriptionForm();
					}
					
				}*/
			}
			
			
			
		},  	
		failure: function(o) {
			DBM.module.Common.defaultCallback.failure(o);
			//alert("Feil ved registrering/innlogging. Vennligst prøv igjen, eller ta kontakt med support@dagbladet.no.");
		},  	
		timeout: DBM.module.Common.timeout,
		argument: {emailAddress: "", signature: "", cellNo: ""} 	
	},
	
	showLoginForm: function(emailAddress) {
		
		
		
		
		var preview = YAHOO.util.Dom.get('preview-entry');
		preview.style.overflow = 'visible';
		/*YAHOO.util.Dom.removeClass('login-container', 'absolute-hidden');
		var elements = YAHOO.util.Dom.getElementsByClassName('discussion-entry', 'li');
		YAHOO.util.Dom.addClass(elements, 'fadeout');
		var y=document.createElement("div");
		y.id = 'mask';
		document.getElementById("doc").appendChild(y);*/

		
		DBM.module.Comments.hideAds();
		
		
		DBM.module.Comments.myPanel = new YAHOO.widget.Panel("myPanel", { 
			width:"400px",
			fixedcenter:true, 
			visible:false,
			close:false, 
			constraintoviewport:true, 
			draggable:true,
			zindex:999,
			modal:true
		});
		//DBM.module.Comments.myPanel.setHeader("Hei, du er ikke registrert hos oss ennå!");
		
		var html = YAHOO.util.Dom.get("login-container").innerHTML;
		DBM.module.Comments.loginHTML = html;
		YAHOO.util.Dom.get("login-container").innerHTML = '';
		DBM.module.Comments.myPanel.setBody(html);
		DBM.module.Comments.myPanel.render(document.body);
		
		var loginEmail = YAHOO.util.Dom.get('loginEmail');
		if (loginEmail) {
			loginEmail.value = emailAddress;
		}
		
		DBM.module.Comments.myPanel.show();
		
		var focusElement = YAHOO.util.Dom.get("loginPassword");
		focusElement.focus();
		
		//document.register-user-form.signature.focus();
	},
	
	registerUserCallback: {
		success: function(o) {
			

			// REMOVE
			//DBM.module.Comments.showVerificationCode(this.argument.emailAddress, "123abc0000003", this.argument.cellNo);
			//return true;
			DBM.module.Common.defaultCallback.success(o);

			response = eval ( "(" + o.responseText + ")" );

			document.getElementById("signature-err").innerHTML = "";
			document.getElementById("password-err").innerHTML = "";
			document.getElementById("cell-no-err").innerHTML = "";
			document.getElementById("terms-err").innerHTML = "";
			//alert(o.responseText);
			if (response.userid != null) {
				userId = response.userid;
				
				DBM.module.Comments.showVerificationCode(this.argument.emailAddress, userId, this.argument.cellNo);
			}
			else if (response.errors) {

				for ( var i=0, len=response.errors.length; i<len; ++i ){

					if (response.errors[i] == 504 || response.errors[i] == 516) {
						document.getElementById("cell-no-err").innerHTML = "Skriv inn et gyldig mobilnummer";
					}
					else if (response.errors[i] == 506 || response.errors[i] == 515 || response.errors[i] == 514  ) {

						document.getElementById("signature-err").innerHTML = "Skriv inn navnet ditt";
					}
					else if (response.errors[i] == 503) {
						document.getElementById("password-err").innerHTML = "Skriv inn et passord";
					}
					else if (response.errors[i] == 505) {
						document.getElementById("terms-err").innerHTML = "Les og godkjenn";
					}
					else if (response.errors[i] == 405) {
						document.getElementById("cell-no-err").innerHTML = "Mobilnummeret er sperret for bruk på Dagbladet.no";
					}
					
				}

			}
			else {
				alert("Noe gikk galt");
			}
			
		},  	
		failure: function(o) {
			DBM.module.Common.defaultCallback.failure(o);
			//alert("Feil ved registrering/innlogging. Vennligst prøv igjen, eller ta kontakt med support@dagbladet.no.");
		},  	
		timeout: DBM.module.Common.timeout,
		argument: {emailAddress: "", signature: "", cellNo: ""} 	
	},
	
	registerUser: function() {

		// OLD
		var signature = document.getElementById("signature").value;
		
		// NEW
		var firstname = document.getElementById("signature").value;
		var lastname = document.getElementById("signature-lastname").value;
		var emailAddress = document.getElementById("email").value;
		var cellNo = document.getElementById("cell-no").value;
		var cellNoPrefix = encodeURIComponent(document.getElementById("cell-no-prefix").value);
		var pwd = document.getElementById("password").value;
		
		var terms = document.getElementById("terms").checked;
	
		
		this.registerUserCallback.argument.emailAddress = emailAddress;
		this.registerUserCallback.argument.cellNo = cellNo;
		this.registerUserCallback.argument.signature = signature;
		
		//var url = "http://www.dagbladet.no/konto/"; 
		//var postVars = "op=RegisterUser&response=json&serviceid=101&register_email=" + emailAddress + "&name=" + signature + "&cell=" + cellNo + "&register_password=" + pwd;
		var postVars = "op=RegisterUser&response=json&serviceid=101&register_email=" + emailAddress + "&firstname=" + firstname + "&lastname=" + lastname + "&cell=" + cellNo + "&prefix=" + cellNoPrefix + "&register_password=" + pwd;
		if (terms) {
			postVars = postVars + "&terms=1";
		}
		
		//YAHOO.util.Connect.setDefaultPostHeader(false);
		//YAHOO.util.Connect.initHeader("Content-Type","application/x-www-form-urlencoded; charset=ISO-8859-1");
		var tId = YAHOO.util.Connect.asyncRequest('POST', DBM.module.Comments.authUrl, this.registerUserCallback, postVars);
		DBM.module.Common.addRequest(tId, DBM.module.Comments.authUrl, DBM.module.Comments.registerUserCallback, '',  '', "POST");
	},
	
	
	loginUserCallback: {
		success: function(o) {
			
			// REMOVE
			//DBM.module.Comments.showVerificationCode(this.argument.emailAddress, "123abc0000003", this.argument.cellNo);
			//return true;
			DBM.module.Common.defaultCallback.success(o);
			response = eval ( "(" + o.responseText + ")" );


			if (response.userid != null) {
				
				var token = document.getElementById("outputConfirmationToken").innerHTML;
				var userId = document.getElementById("loginEmail").value;
				var emailAddress = document.getElementById("outputMailbackAddress").innerHTML;
				DBM.module.Comments.activateComment(token, emailAddress, false);
				
			}
			else if (response.errors) {
				for ( var i=0, len=response.errors.length; i<len; ++i ){

					if (response.errors[i] == 403) {
						document.getElementById("password-login-err").innerHTML = "Feil e-post/passord";
					}
					else if (response.errors[i] == 407) {
						DBM.module.Comments.showConfirmSubscriptionForm();
					}
					
				}
			}
			
			/*if (response.registered == 700 && response.uid != null) {
				userId = response.uid;
				
				DBM.module.Comments.showVerificationCode(this.argument.emailAddress, userId, this.argument.cellNo);
			}
			else if (response.errors) {
				
				for ( var i=0, len=response.errors.length; i<len; ++i ){

					if (response.errors[i] == 505) {
						document.getElementById("cell-no-err").innerHTML = "Skriv inn et gyldig mobilnummer";
					}
					else if (response.errors[i] == 506) {
						document.getElementById("signature-err").innerHTML = "Skriv inn navnet ditt";
					}
					else if (response.errors[i] == 503) {
						document.getElementById("password-err").innerHTML = "Skriv inn et passord";
					}
					else if (response.errors[i] == 510) {
						document.getElementById("terms-err").innerHTML = "Du må lese og godkjenne brukeravtalen og personvernavtalen";
					}
					
				}

			}
			else {
				alert("Noe gikk galt");
			}*/
			
		},  	
		failure: function(o) {
			DBM.module.Common.defaultCallback.failure(o);
			//alert("Feil ved registrering/innlogging. Vennligst prøv igjen, eller ta kontakt med support@dagbladet.no.");
		},  	
		timeout: DBM.module.Common.timeout,
		argument: {emailAddress: "", signature: "", cellNo: ""} 	
	},
	
	loginUser: function() {

		var emailAddress = document.getElementById("loginEmail").value;
		var pwd = document.getElementById("loginPassword").value;

		DBM.module.Comments.varEmail = emailAddress;
		DBM.module.Comments.varPassword = pwd;
		
		
		this.loginUserCallback.argument.emailAddress = emailAddress;
		
		//var url = "http://www.dagbladet.no/konto/"; 
		//var postVars = "op=LoginUser&response=json&serviceid=101&username=" + emailAddress + "&password=" + pwd;
		// PAYMENT
		var postVars = "op=LoginSubscribe&response=json&serviceid=101&username=" + emailAddress + "&password=" + pwd;
		var tId = YAHOO.util.Connect.asyncRequest('POST', DBM.module.Comments.authUrl, this.loginUserCallback, postVars);
		DBM.module.Common.addRequest(tId, DBM.module.Comments.authUrl, DBM.module.Comments.loginUserCallback, '',  '', "POST");
	},
	
	showHideTerms: function(type) {
		
		

		DBM.module.Comments.termsPanel = new YAHOO.widget.Panel("termsPanel", { 
			width:"350px", 
			height:"350px", 
			visible:false,
			close:true, 
			fixedcenter:true, 
			constraintoviewport:true, 
			zindex:999
		});
		//DBM.module.Comments.myPanel.setHeader("Hei, du er ikke registrert hos oss ennå!");
		
	
		if (type == 'user'){
			var html = YAHOO.util.Dom.get("user-terms").innerHTML;	
		}
		else {
			var html = YAHOO.util.Dom.get("privacy-terms").innerHTML;
		}
		
		
		DBM.module.Comments.termsPanel.setBody(html);
		DBM.module.Comments.termsPanel.render(document.body);
		DBM.module.Comments.termsPanel.show();
		
		
		/*if (type == 'user') {
			if (YAHOO.util.Dom.hasClass("user-terms", "absolute-hidden")) {
				YAHOO.util.Dom.removeClass("user-terms", "absolute-hidden");
				YAHOO.util.Dom.addClass("privacy-terms", "absolute-hidden");
			}
			else {
				YAHOO.util.Dom.addClass("user-terms", "absolute-hidden");
				YAHOO.util.Dom.addClass("privacy-terms", "absolute-hidden");
			}
		}
		else if (type == 'privacy') {
			if (YAHOO.util.Dom.hasClass("privacy-terms", "absolute-hidden")) {
				YAHOO.util.Dom.removeClass("privacy-terms", "absolute-hidden");
				YAHOO.util.Dom.addClass("user-terms", "absolute-hidden");
			}
			else {
				YAHOO.util.Dom.addClass("privacy-terms", "absolute-hidden");
				YAHOO.util.Dom.addClass("user-terms", "absolute-hidden");
			}
		}*/
		
		return false;
	},
	
	abortMission: function() {
		
		var commentId = document.getElementById("outputCommentId");
		var discussionId = document.getElementById("outputDiscussionId");
			  	
	  	if (commentId && discussionId) {
			
	  		commentId = commentId.innerHTML;
	  		discussionId = discussionId.innerHTML;
			var url = DBM.module.Common.rootUrl +  DBM.module.Comments.modulePath + "/?op=DeleteUnverifiedComment&id=" + commentId + "&discussionId=" + discussionId;
			var tId = YAHOO.util.Connect.asyncRequest('GET', url, this.abortMissionCallback);
			DBM.module.Common.addRequest(tId, url, DBM.module.Comments.abortMissionCallback, '',  '', "GET");
	  	}
	},
	
	abortMissionCallback: {
		success: function(o) {
			
			// REMOVE
			//DBM.module.Comments.showVerificationCode(this.argument.emailAddress, "123abc0000003", this.argument.cellNo);
			//return true;
			DBM.module.Common.defaultCallback.success(o);
			response = eval ( "(" + o.responseText + ")" );

			//alert(o.responseText);
			
			if (response.commentDeleted) {

				DBM.module.Comments.myPanel.hide();
				
				if (DBM.module.Comments.mobileVerificationHTML != undefined) {
					YAHOO.util.Dom.get("mobile-verification").innerHTML = DBM.module.Comments.mobileVerificationHTML;
				}
				
				if (DBM.module.Comments.loginHTML != undefined) {
					YAHOO.util.Dom.get("login-container").innerHTML = DBM.module.Comments.loginHTML;
				}
				
				/*YAHOO.util.Dom.addClass("mobile-verification", "absolute-hidden");
				YAHOO.util.Dom.addClass("privacy-terms", "absolute-hidden");
				YAHOO.util.Dom.addClass("user-terms", "absolute-hidden");*/
				YAHOO.util.Dom.addClass('preview-entry', 'invisible');
				//YAHOO.util.Dom.addClass('login-container', 'absolute-hidden');
				
				/*var y = document.getElementById("mask");
				document.getElementById("doc").removeChild(y);*/
				
				
		
				var preview = YAHOO.util.Dom.get('preview-entry');
				preview.style.height = '0px';
				preview.style.minHeight = '0px';
				
				
				YAHOO.util.Dom.addClass('preview-entry', 'absolute-hidden');
				

				var alertBox = YAHOO.util.Dom.get("yellow_box");
				if (alertBox) {
					//alert(this.argument.abortType);
					if (this.argument.abortType == 'endSubscription') {
						alertBox.innerHTML = '<h2>Brukeren din er nå stoppet.</h2>' + 
     										'<p>Vi håper du kommer tilbake og bidrar på Dagbladet.no senere. Har du spørsmål om betalingen eller andre ting, er du hjertelig velkommen til å ta kontakt med oss via support@dagbladet.no</p>';
					}
					else {
						alertBox.innerHTML = '<h2>Var du ikke helt fornøyd med innlegget ditt?</h2>' + 
     										'<p>Innlegget ditt er slettet, men vi håper du tar deg tid til å <a href="#comments_form_container">skrive et nytt</a>. Vi vil veldig gjerne høre fra deg, hvis du har noe å bidra med.</p>';
					}
				}
				
				YAHOO.util.Dom.removeClass("yellow_box", "absolute-hidden");
				var anim2 = new YAHOO.util.Anim(  
							'yellow_box' ,   
							{ opacity: {from: 0, to: 1 } },   
							2,   
							YAHOO.util.Easing.easeOut 
							); 
				anim2.animate();

				DBM.module.Comments.insertCommentsForm(response.discussionId, "comments_form_container");
				
			}
			
		},  	
		failure: function(o) {
			DBM.module.Common.defaultCallback.failure(o);
		},  	
		timeout: DBM.module.Common.timeout,
		argument: {commentId: "", abortType: ""} 	
	},
	
	
	abortUserAndMission: function() {
		
		var userId = document.getElementById("userId");
		if (userId) {
			userId = userId.value;	
		}

	  	if (userId) {
			//var url = "http://www.dagbladet.no/konto/?op=AbortUser&userid=" + userId + "&response=json";
			var url = DBM.module.Comments.authUrl + "?op=AbortUser&userid=" + userId + "&response=json";
			var tId = YAHOO.util.Connect.asyncRequest('GET', url, this.abortUserAndMissionCallback);
			DBM.module.Common.addRequest(tId, url, DBM.module.Comments.abortUserAndMissionCallback, '',  '', "GET");
	  	}
	},
	
	abortUserAndMissionCallback: {
		success: function(o) {
			
			// REMOVE
			//DBM.module.Comments.showVerificationCode(this.argument.emailAddress, "123abc0000003", this.argument.cellNo);
			//return true;

			DBM.module.Common.defaultCallback.success(o);
			response = eval ( "(" + o.responseText + ")" );

			
			
			if (response.aborted) {
				DBM.module.Comments.abortMission();
			}
			
		},  	
		failure: function(o) {
			DBM.module.Common.defaultCallback.failure(o);
		},  	
		timeout: DBM.module.Common.timeout,
		argument: {commentId: ""} 	
	},

	
	nl2br: function(text){
		text=escape(text);
		return unescape(text.replace(/(%5Cr%5Cn)|(%5Cn%5Cr)|%5Cr|%5Cn/g,'<br />'));
	},

	
	updateSignature: function() {
		var source = YAHOO.util.Dom.get("signature");
		var source2 = YAHOO.util.Dom.get("signature-lastname");

		var target = YAHOO.util.Dom.get("preview-user-name");
		//var target2 = YAHOO.util.Dom.get("preview-user-name-suffix");
		target.innerHTML = source.value + ' ' + source2.value;
		//target2.innerHTML = ", " + source.value.substr(0,6);
	}, 
	
	
	cell_url: "http://www.dagbladet.no/konto/",
	//cell_url: DBM.module.Comments.authUrl,


	showNewCell: function(){
		//var cell = document.getElementById('newcell');
		//cell.style.display = 'block';	

		DBM.module.Comments.newCellPanel = new YAHOO.widget.Panel("termsPanel", { 
			width:"350px", 
			height:"150px", 
			visible:false,
			close:true, 
			fixedcenter:true, 
			constraintoviewport:true, 
			zindex:999
		});
		//DBM.module.Comments.myPanel.setHeader("Hei, du er ikke registrert hos oss ennå!");
		
		var html = YAHOO.util.Dom.get("newcell").innerHTML;
		
		
		DBM.module.Comments.newCellHtml = html;
		YAHOO.util.Dom.get("newcell").innerHTML = '';
		DBM.module.Comments.newCellPanel.setBody(html);
		DBM.module.Comments.newCellPanel.render(document.body);
		DBM.module.Comments.newCellPanel.show();
			
	},
	
	
	hideNewCell: function(){
		if (DBM.module.Comments.newCellHtml) {
			YAHOO.util.Dom.get("newcell").innerHTML = DBM.module.Comments.newCellHtml;
		}
		//var cell = document.getElementById('newcell');
		//cell.style.display = 'none';
		DBM.module.Comments.newCellPanel.hide();
	},

		
	sendCode: function(serviceid, verificationid, newcell){
		
		var loadingDiv = 'loader';
		var target = 'op=SendCommentVerification';
		
		DBM.util.createDiv(loadingDiv,  DBM.module.Common.defaultLoadingHTML);
				
		if (newcell) {
			var cell_input = document.getElementById('newcellno');
			var newcell = cell_input.value;	
			//var urlparams = this.cell_url+'?'+target+'&serviceid='+serviceid+'&verificationid='+verificationid+'&cell='+newcell;
			var urlparams = DBM.module.Comments.authUrl+'?'+target+'&serviceid='+serviceid+'&verificationid='+verificationid+'&cell='+newcell;
		} else {
			//var urlparams = this.cell_url+'?'+target+'&serviceid='+serviceid+'&verificationid='+verificationid;	
			var urlparams = DBM.module.Comments.authUrl+'?'+target+'&serviceid='+serviceid+'&verificationid='+verificationid;	
		}
		var res = YAHOO.util.Connect.asyncRequest('GET', urlparams, this.sendCodeCallback);	
		this.hideNewCell();

		return false;
	},
	
	
	sendCodeCallback: { 
		
		success: function(o) {
			var message = document.getElementById('verification-err');
			var loader = document.getElementById('loader');
			var infolabel = document.getElementById('verificationLabel');
			
			if (o.responseText.length  > 0) {
				var obj = eval('('+o.responseText+')');
	
//				if (message) {
//					message.style.display = 'block';	
//					message.className ='';		
//					message.innerHTML = '';	
//				}
	
	
				infolabel.innerHTML = '';
				
				if (obj.success) {
					message.className = 'ok';
					
					if (obj.newcell) {
						message.innerHTML = '<div id="oktext">Nå har vi skifet telefon til <strong>'+obj.newcell+'</strong> og send deg en ny kode</div>';
					} else if (obj.cell)  {
						message.innerHTML = '<div id="oktext">Nå har vi sendt deg en ny kode til <strong>'+obj.cell+'</strong></div>';
					}  else {
						message.innerHTML = '<div id="oktext">Nå har vi sendt deg en ny kode!</div>';
					}		
					
				} else {
					
					message.className = 'error';
 					if (obj.errors){
 						
// 						if (obj.newcell) {
//							vstring.value = obj.newcell;
//							refcell.innerHTML = '<strong>'+obj.newcell+'</strong>';
//						}
 						
 						if (obj.errors == 504) {
 							message.innerHTML = '<div id="errortext">Det mobilnummeret hadde ikke 8 siffer.</div>';
 						} else if (obj.errors == 405) {
 							message.innerHTML = '<div id="errortext">Mobilnummeret du prøver å registere er sperret for bruk på Dagbladet.no.</div>';
 						} else if (obj.errors == 200) {
 							message.innerHTML = '<div id="errortext">Nå har du prøvd litt for mange ganger. Vent litt før du prøver igjen.</div>';
 						} else {
 							message.innerHTML = '<div id="errortext">Det oppsto en feil under sending av ny kode. Prøv en gang til.</div>';
 						}
 										
 					} else{
						message.innerHTML = '<div id="errortext">Det oppsto en feil under sending av ny kode. Prøv en gang til.</div>';	
 					}
				}	
			}
			
			loader.innerHTML = '';	
		
			return false;
		}, 
		
		failure: function(o) {
		 	
		 	if (o.status == 404){
		 		alert('Ajax call target not found! (404)');
		 	} 
			
			return false;
		},
		timeout: DBM.module.Common.timeout
	},
	
	showForgottenPass: function(){
		
		//var cell = document.getElementById('newcell');
		//cell.style.display = 'block';	

		DBM.module.Comments.forgottenPassPanel = new YAHOO.widget.Panel("termsPanel", { 
			width:"350px", 
			height:"150px", 
			visible:false,
			close:true, 
			fixedcenter:true, 
			constraintoviewport:true, 
			zindex:999
		});
		//DBM.module.Comments.myPanel.setHeader("Hei, du er ikke registrert hos oss ennå!");
		
		var html = YAHOO.util.Dom.get("forgottenPass").innerHTML;
		
		
		DBM.module.Comments.forgottenPassHtml = html;
		YAHOO.util.Dom.get("forgottenPass").innerHTML = '';
		DBM.module.Comments.forgottenPassPanel.setBody(html);
		DBM.module.Comments.forgottenPassPanel.render(document.body);
		DBM.module.Comments.forgottenPassPanel.show();
			
	},
	
	
	hideForgottenPass: function(){
		if (DBM.module.Comments.forgottenPassHtml) {
			YAHOO.util.Dom.get("forgottenPass").innerHTML = DBM.module.Comments.forgottenPassHtml;
		}
		//var cell = document.getElementById('newcell');
		//cell.style.display = 'none';
		DBM.module.Comments.forgottenPassPanel.hide();
	},
	
	
	switchContent: function(elementId, contentHTML){

		if (DBM.module.Comments.switchedContent.length <= 0) {
			DBM.module.Comments.switchedContent = new Array();	
		}
		
		
		
		if (DBM.module.Comments.switchedContent[0]) {

			var content = DBM.module.Comments.switchedContent[0];

		}
		else {
			
			var content = new DBM.util.switchedContent(elementId, contentHTML);
			DBM.module.Comments.switchedContent[0] = content;
		}
		

		var el = YAHOO.util.Dom.get(elementId);
		
		if (el) {
			if (content.switched) {

				el.innerHTML = content.originalContent;
				content.switched = false;
				DBM.module.Comments.switchedContent[0].switched = false;
				DBM.module.Comments.switchedContent = new Array();	
			}
			else {

				el.innerHTML = content.replacementHTML;
				content.switched = true;
				DBM.module.Comments.switchedContent[0] = content;
				
				
			}
			
		}
		else {
			
		}
		
		return true;
		
	},

		
	resetPassword: function(serviceid, email){
		
		var loadingDiv = 'loader';
		var target = 'op=LostPassword&response=json';
		
		DBM.util.createDiv(loadingDiv,  DBM.module.Common.defaultLoadingHTML);
				
		if (email) {
			var emailInput = document.getElementById('loginEmail');
			var emailAddress = emailInput.value;
			if (emailAddress) {	
				//var urlparams = this.cell_url+'?'+target+'&sid='+serviceid+'&lost_email='+emailAddress;
				var urlparams = DBM.module.Comments.authUrl+'?'+target+'&sid='+serviceid+'&lost_email='+emailAddress;
				
				var res = YAHOO.util.Connect.asyncRequest('GET', urlparams, this.resetPasswordCallback);	
				alert("Vent noen sekunder, og du skal ha fått tilsendt et nytt passord på mobilen din. Bruk det for å logge inn.");
			}
			else {
				alert("Feil: Du har ikke skrevet inn e-postadressen din.");	
			}
			this.hideForgottenPass();
		} 
		else {
			
		}

		return false;
	},
	
	
	resetPasswordCallback: { 
		
		success: function(o) {
			var message = document.getElementById('verification-err');
			var loader = document.getElementById('loader');
			var infolabel = document.getElementById('verificationLabel');
			
			if (o.responseText.length  > 0) {
				var obj = eval('('+o.responseText+')');
	
//				if (message) {
//					message.style.display = 'block';	
//					message.className ='';		
//					message.innerHTML = '';	
//				}
	
	
				infolabel.innerHTML = '';
				
				if (obj.code) {
					message.className = 'ok';
					
					//alert("Du får et nytt passord tilsendt på mobilen din i løpet av noen sekunder. Bruk det for å logge inn.");
					
				} else {
					
					alert("Det oppstod en feil. Vennligst sjekk at e-postadressen din er skrevet riktig, og prøv igjen. Har du fortsatt problemer, kan du ta kontakt på support@dagbladet.no.");
				}	
			}
			
			loader.innerHTML = '';	
		
			return false;
		}, 
		
		failure: function(o) {
		 	
		 	if (o.status == 404){
		 		alert('Ajax call target not found! (404)');
		 	} 
			
			return false;
		},
		timeout: DBM.module.Common.timeout
	}

}	

DBM.util.switchedContent = function(elementId, replacementHTML) {

	this.elementId = elementId;
	this.replacementHTML = replacementHTML;
	
	var el = YAHOO.util.Dom.get(elementId);
	if (el) {
		this.originalContent = el.innerHTML;
	}
	else {
		this.originalContent = "";	
	}
	this.switched = false;
}


	
	var sourceTypeId = "";
	
	var sourceId = ""; 
	
	var votesTarget = "votes_container";
	
//	var rootUrl = "http://www.dagbladet.no/utvikling/labrador/";
	var rootUrl = labradorUrl;
	
	var modulePath = ""; 
	
	var currentRequest = ""; 
	
		
	
	function insertVotesCallback(options, success, response){

		if(success){
			var resp = eval ( "(" + response.responseText + ")" );
			var avg = resp.votesAverage;
			var count = resp.votesCount;
			var woId = resp.woId;
			
			setStars(avg, count, woId);
		}


	}


	function setStars (avgValue, count, woId) {

		var starRating = Ext.get("star-rating-"+ woId).dom;
		
		var voteCount = Ext.get("star-votes-"+ woId);

		var starCounter = 1

		if(starRating){
			for (var i = 0; i < starRating.childNodes.length; i++) {

				if (starRating.childNodes[i].tagName == "LI") {
					if (starCounter == avgValue) {
						starRating.childNodes[i].className = "current" + starCounter;
					}
					else {
						starRating.childNodes[i].className = "";
					}
					starCounter++;
				}
			}

			voteCount.dom.innerHTML = count;
		}
		
	};
	
	
	function insertVotes (woId, typeId) {
		
		var currentRequestUrl = rootUrl + "?op=ViewVotes";
		
		Ext.Ajax.request({
			url: currentRequestUrl
			, method: 'post' // or get
			, scope: this
			, params: {
				typeId: typeId,
				woId: woId
			}
			, callback: insertVotesCallback
			
		});	
	
	};
	
	
	function updateVotesCallback(options, success, response){

		if(success){

			var response = eval ( "(" + response.responseText + ")" );
			/*if (response.updateVotes == "1") {
			var starRatingHeader = document.getElementById("star-rating-header");
			starRatingHeader.innerHTML = '<strong>Snitt:</strong>  ' + response.votesAverage + ' av 5 (' + response.votesCount + ')';
			}*/

			if (response.hasVoted == "1") {
				var starRatingFooter = document.getElementById("star-rating-footer-" + response.woId);
				starRatingFooter.innerHTML = response.text;
			}
			else if (response.voteValue) {
				var starRatingFooter = document.getElementById("star-rating-footer-" + response.woId);

				starRatingFooter.innerHTML = response.text;
			}


			if (response.hasVoted != "1") {

				var starRating = document.getElementById("star-rating-" + response.woId);
				var voteCount = document.getElementById("star-votes-" + response.woId);


				var starCounter = 1
				for (var i = 0; i < starRating.childNodes.length; i++) {
					if (starRating.childNodes[i].tagName == "LI") {
						if (starCounter == response.votesAverage) {
							starRating.childNodes[i].className = "current" + starCounter;
						}
						else {
							starRating.childNodes[i].className = "";
						}
						starCounter++;
					}
				}

				voteCount.innerHTML = response.votesCount;

				if (response.voteValue) {
					var element = document.getElementById('star-rating-'+response.woId);
					var toColor = '#ffffd7'; //YAHOO.util.Dom.getStyle('star-rating', 'backgroundColor');
					var fromColor = '#ffff7a';
					var myAnim = new YAHOO.util.ColorAnim(element, {backgroundColor: { from: fromColor, to: toColor } });
					myAnim.animate();
				}
			}
		}
	}

	
	function addVote (voteValue, woId, typeId) {			
		
		var currentRequestUrl = rootUrl + "?op=AddVote";
		
		Ext.Ajax.request({
			url: currentRequestUrl
			, method: 'post' // or get
			, scope: this
			, params: {
				typeId: typeId,
				woId: woId,
				voteValue: voteValue
			}
			, callback: updateVotesCallback
			
		});	
		
	};

	
	
	function voteInit (woId, in_rootUrl, type) {				
		
		rootUrl = in_rootUrl;	
				
		insertVotes(woId, type);
		
		// Attach handlers
		//var stars = ["star1", "star2", "star3", "star4", "star5"]; 
		//YAHOO.util.Event.addListener(stars, "click", DBM.module.Votes.clickVote); 
	}
	



//DBM.module.Votes.prepare();

/*
 * Thickbox 3 - One Box To Rule Them All.
 * By Cody Lindley (http://www.codylindley.com)
 * Copyright (c) 2007 cody lindley
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
*/

var tb_pathToImage = "http://gfx.dagbladet.no/blink/reise/loadingAnimation.gif";

/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/

//on page load call tb_init
$(document).ready(function(){
	tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
	imgLoader = new Image();// preload image
	imgLoader.src = tb_pathToImage;
});

//add thickbox to href & area elements that have a class of .thickbox
function tb_init(domChunk){
	$(domChunk).click(function(){
	var t = this.title || this.name || null;
	var a = this.href || this.alt;
	var g = this.rel || false;
	tb_show(t,a,g);
	this.blur();
	return false;
	});
}

function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link

	try {
		if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
			$("body","html").css({height: "100%", width: "100%"});
			$("html").css("overflow","hidden");
			if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
				$("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
				$("#TB_overlay").click(tb_remove);
			}
		}else{//all others
			if(document.getElementById("TB_overlay") === null){
				$("body").append("<div id='TB_overlay'></div><div id='TB_window'>");
				$("#TB_overlay").click(tb_remove);
			}
		}

		if(caption===null){caption="";}
		$("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
		$('#TB_load').show();//show loader

		var baseURL;
	   if(url.indexOf("?")!==-1){ //ff there is a query string involved
			baseURL = url.substr(0, url.indexOf("?"));
	   }else{
	   		baseURL = url;
	   }

	   var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.bmp/g;
	   var urlType = baseURL.toLowerCase().match(urlString);

		if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images

			TB_PrevCaption = "";
			TB_PrevURL = "";
			TB_PrevHTML = "";
			TB_NextCaption = "";
			TB_NextURL = "";
			TB_NextHTML = "";
			TB_imageCount = "";
			TB_FoundURL = false;
			if(imageGroup){
				TB_TempArray = $("a[@rel="+imageGroup+"]").get();
				for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
					var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
						if (!(TB_TempArray[TB_Counter].href == url)) {
							if (TB_FoundURL) {
								TB_NextCaption = TB_TempArray[TB_Counter].title;
								TB_NextURL = TB_TempArray[TB_Counter].href;
								TB_NextHTML = "<span id='TB_next'>&nbsp;&nbsp;<a href='#'>Next &gt;</a></span>";
							} else {
								TB_PrevCaption = TB_TempArray[TB_Counter].title;
								TB_PrevURL = TB_TempArray[TB_Counter].href;
								TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&lt; Prev</a></span>";
							}
						} else {
							TB_FoundURL = true;
							TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);
						}
				}
			}

			imgPreloader = new Image();
			imgPreloader.onload = function(){
			imgPreloader.onload = null;

			// Resizing large images - orginal by Christian Montoya edited by me.
			var pagesize = tb_getPageSize();
			var x = pagesize[0] - 75;
			var y = pagesize[1] - 75;
			var imageWidth = imgPreloader.width;
			var imageHeight = imgPreloader.height;
			if (imageWidth > x) {
				imageHeight = imageHeight * (x / imageWidth);
				imageWidth = x;
				if (imageHeight > y) {
					imageWidth = imageWidth * (y / imageHeight);
					imageHeight = y;
				}
			} else if (imageHeight > y) {
				imageWidth = imageWidth * (y / imageHeight);
				imageHeight = y;
				if (imageWidth > x) {
					imageHeight = imageHeight * (x / imageWidth);
					imageWidth = x;
				}
			}
			// End Resizing

			TB_WIDTH = imageWidth + 30;
			TB_HEIGHT = imageHeight + 60;
			$("#TB_window").append("<a href='' id='TB_ImageOff' title='Lukk'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Lukk vindu'>Lukk</a></div>");

			$("#TB_closeWindowButton").click(tb_remove);

			if (!(TB_PrevHTML === "")) {
				function goPrev(){
					if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);}
					$("#TB_window").remove();
					$("body").append("<div id='TB_window'></div>");
					tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
					return false;
				}
				$("#TB_prev").click(goPrev);
			}

			if (!(TB_NextHTML === "")) {
				function goNext(){
					$("#TB_window").remove();
					$("body").append("<div id='TB_window'></div>");
					tb_show(TB_NextCaption, TB_NextURL, imageGroup);
					return false;
				}
				$("#TB_next").click(goNext);

			}

			document.onkeydown = function(e){
				if (e == null) { // ie
					keycode = event.keyCode;
				} else { // mozilla
					keycode = e.which;
				}
				if(keycode == 27){ // close
					tb_remove();
				} else if(keycode == 190){ // display previous image
					if(!(TB_NextHTML == "")){
						document.onkeydown = "";
						goNext();
					}
				} else if(keycode == 188){ // display next image
					if(!(TB_PrevHTML == "")){
						document.onkeydown = "";
						goPrev();
					}
				}
			};

			tb_position();
			$("#TB_load").remove();
			$("#TB_ImageOff").click(tb_remove);
			$("#TB_window").css({display:"block"}); //for safari using css instead of show
			};

			imgPreloader.src = url;
		}else{//code to show html pages

			var queryString = url.replace(/^[^\?]+\??/,'');
			var params = tb_parseQuery( queryString );

			TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
			TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
			ajaxContentW = TB_WIDTH - 30;
			ajaxContentH = TB_HEIGHT - 45;

			if(url.indexOf('TB_iframe') != -1){
					urlNoQuery = url.split('TB_');
					$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Lukk vindu'>Lukk</a></div></div><iframe scrolling='no' marginheight='0' marginwidth='0' frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' onload='tb_showIframe()'> </iframe>");
				}else{
					if($("#TB_window").css("display") != "block"){
						if(params['modal'] != "true"){
						$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>Lukk</a></div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
						}else{
						$("#TB_overlay").unbind();
						$("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");
						}
					}else{
						$("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
						$("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
						$("#TB_ajaxContent")[0].scrollTop = 0;
						$("#TB_ajaxWindowTitle").html(caption);
					}
			}

			$("#TB_closeWindowButton").click(tb_remove);

				if(url.indexOf('TB_inline') != -1){
					$("#TB_ajaxContent").html($('#' + params['inlineId']).html());
					tb_position();
					$("#TB_load").remove();
					$("#TB_window").css({display:"block"});
				}else if(url.indexOf('TB_iframe') != -1){
					tb_position();
					if(frames['TB_iframeContent'] === undefined){//be nice to safari
						$("#TB_load").remove();
						$("#TB_window").css({display:"block"});
						$(document).keyup( function(e){ var key = e.keyCode; if(key == 27){tb_remove();}});
					}
				}else{
					$("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
						tb_position();
						$("#TB_load").remove();
						tb_init("#TB_ajaxContent a.thickbox");
						$("#TB_window").css({display:"block"});
					});
				}
		}

		if(!params['modal']){
			document.onkeyup = function(e){
				if (e == null) { // ie
					keycode = event.keyCode;
				} else { // mozilla
					keycode = e.which;
				}
				if(keycode == 27){ // close
					tb_remove();
				}
			};
		}

	} catch(e) {
		//nothing here
	}
}

//helper functions below
function tb_showIframe(){
	$("#TB_load").remove();
	$("#TB_window").css({display:"block"});
}

function tb_remove() {
 	$("#TB_imageOff").unbind("click");
	$("#TB_overlay").unbind("click");
	$("#TB_closeWindowButton").unbind("click");
	$("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').remove();});
	$("#TB_load").remove();
	if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
		$("body","html").css({height: "auto", width: "auto"});
		$("html").css("overflow","");
	}
	document.onkeydown = "";
	return false;
}

function tb_position() {
$("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
	if ( !(jQuery.browser.msie && typeof XMLHttpRequest == 'function')) { // take away IE6
		$("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
	}
}

function tb_parseQuery ( query ) {
   var Params = {};
   if ( ! query ) {return Params;}// return empty object
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

function tb_getPageSize(){
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	arrayPageSize = [w,h];
	return arrayPageSize;
}




if(!pictures){
	var pictures = new Array();
}
if(!currentImageNr){
	var currentImageNr = new Array();
}
if(!preloadImageObject){
	var preloadImageObject = new Image();
}
if(!dimensions){
	var dimensions = new Array(); 
}




function initSlideShow(width, height, slideShowId, id){
		
	dimensions[slideShowId] = new Array();
	
	dimensions[slideShowId]['slideShowWidth'] = width;
	dimensions[slideShowId]['slideShowHeight'] = height;		
		
	var imgFrame = Ext.get("group-img-"+id);		
	//imgFrame.on("click", selectDirection);	
	//imgFrame.on("mouseover", highlightDirection);	
	
}

function addToSlideshow(nr, thumbUrl, imageUrl, caption, width, height, id){	

	var slideShowId = id;
		
	if(!pictures[slideShowId]){
		pictures[slideShowId] = new Array();
	}
	pictures[slideShowId][nr] = new Array();
	
	pictures[slideShowId][nr]['caption'] = caption;
	pictures[slideShowId][nr]['url'] = imageUrl;
	pictures[slideShowId][nr]['width'] = width;
	pictures[slideShowId][nr]['height'] = height;		
	preloadImageObject.src = imageUrl;
	
}

function nextImage(id, debug){
		
	if(currentImageNr[id] < pictures[id].length - 1){
		currentImageNr[id]++;
	}	
	else{
		currentImageNr[id] = 1;
	}
	
	loadImage(currentImageNr[id], id, debug);
}


function prevImage(id){
	
	if(currentImageNr[id] > 1){
		currentImageNr[id]--;
	}
	else{
		currentImageNr[id] = pictures[id].length - 1;
	}		
	
	loadImage(currentImageNr[id], id);	
}

function highlightDirection(e){
	
	var image = Ext.get(e.getTarget());
	var navigation = Ext.get("navTop");
	var next = navigation.child("li.next");
	var prev = navigation.child("li.prev");
	
	var slideShow = Ext.get(image.findParent("div.slideShow"));	
	//var id = parseInt(slideShow.dom.id);

	if(image){

		var posx = e.getPageX();
		var posy = e.getPageY();

		var coords = slideShow.getCenterXY();
		var centerX = coords[0];
		
		if( posx > centerX ){
			//nextImage(id);
			next.addClass("highlightArrow");
			prev.removeClass("highlightArrow");
		}
		else{
			//prevImage(id);
			prev.addClass("highlightArrow");
			next.removeClass("highlightArrow");
		}
		//nextImage(id);
	}
}

function selectDirection(e){

	var image = Ext.get(e.getTarget());
	var navigation = Ext.get("navTop");
	var next = navigation.child("li.next");
	var prev = navigation.child("li.prev");
	
	var slideShow = Ext.get(image.findParent("div.slideShow"));	
	var id = parseInt(slideShow.dom.id);

	if(image && id){

		var posx = e.getPageX();
		var posy = e.getPageY();

		var coords = slideShow.getCenterXY();
		var centerX = coords[0];
		
		if( posx > centerX ){
			nextImage(id);			
		}
		else{
			prevImage(id);			
		}
		//nextImage(id);
	}
}

function loadImage(nr, id, debug){			
	
	var slideShowId = id;		
	currentImageNr[id] = nr;	
	var slideShowEl = Ext.get(document.getElementById(slideShowId));	
				
	slideShowEl.child("span.currentImageNr").dom.innerHTML = nr;
	

	if(pictures[slideShowId][nr]['caption'] && pictures[slideShowId][nr]['caption'] != ' '){		
		
		var captionEl = slideShowEl.child("div.imageCaption");
		captionEl.dom.innerHTML = pictures[slideShowId][nr]['caption'];
		//var calcWidth = captionEl.getComputedWidth();
		//alert(calcWidth);
		
		var captionLength = pictures[slideShowId][nr]['caption'].length;
		var lineHeight = 10;
		var imageWidth = captionEl.getComputedWidth();
		var totalWidth = parseInt(captionLength) * 11.2;
	
		//if the calculated div height will be higher than minimum value (20px)
		
		
		if((totalWidth/imageWidth) > 2){					
			var divHeight = Math.round(totalWidth/imageWidth) * lineHeight;			
		}
		else{
			var divHeight = 20;
		}				
		slideShowEl.child("div.img-tool-box").dom.style.visibility = 'visible';	
	}
	else{		
		var divHeight = 20;		
		slideShowEl.child("div.img-tool-box").dom.style.visibility = 'hidden';		
	}
	
	//adjusting widths and heights	
	var image = slideShowEl.child("img.displayImage");			
	image.dom.width = pictures[slideShowId][nr]['width'];
	image.dom.height = pictures[slideShowId][nr]['height'];		
	
	var marginLeft = Math.round((dimensions[slideShowId]['slideShowWidth'] - image.dom.width)/2);
	var marginTop = Math.round((dimensions[slideShowId]['slideShowHeight'] - image.dom.height)/2);
	
	
	if(image.dom.height < dimensions[slideShowId]['slideShowHeight']){
		image.setStyle("margin-top", marginTop + 'px');			
	}
	else{
		image.setStyle("margin-top", 0);		
	}
	if(image.dom.width < dimensions[slideShowId]['slideShowWidth']){		
		image.setStyle("margin-left", marginLeft + 'px');								
	}
	else{
		image.setStyle("margin-left", 0);
	}
	
	
	slideShowEl.child("div.img-tools").dom.style.height = dimensions[slideShowId]['slideShowHeight'] + 'px';
	slideShowEl.child("div.img-tool-box-content").dom.style.height = divHeight + 'px';
	slideShowEl.child("div.img-tool-box-background").dom.style.height = (divHeight + 10) + 'px';	
	slideShowEl.child("div.img-tool-box-background").dom.style.width = dimensions[slideShowId]['slideShowWidth'] + 'px';
	slideShowEl.child("img.displayImage").dom.src = pictures[slideShowId][nr]['url'];
	makeNavStr(id, slideShowEl);
	
	
}


//building the navigation string 
function makeNavStr(id, slideShowEl){
	
	numberStr = "";
	
	var numberStr = ""; 
	var marg = 5;
	var min = 1;
	var total = pictures[id].length - 1;		// 0-index not used
	var nr = currentImageNr[id];	
	var max;		
	
	
	if(((2 * marg) + 1) >= total){
		max = total;
	}
	else{
		if((nr - marg) > 0){
			min = nr - marg;
		}
		else{
			min = 1;
		}
		if((min + (marg * 2)) < total){
			max = min + (marg * 2);
		}
		else{			
			max = total;
			min = total - ((marg * 2));
		}
	}
	
	
	for(var i=min; i<=max; i++){	
		if (i == nr){
			extraClass = 'activeLink';
		}
		else{
			extraClass = '';
		}
		
		numberStr += '<a id="link-' + i + '-' + id +'" class="pageLink ' + extraClass + '" onClick="loadImage('+ i +', '+ id +');">'+ i +'</a> ';	
	}
	
	numberStr = numberStr.slice(0,-2);
	
	var navigation = slideShowEl.child("span.pageNumbers");
	navigation.dom.innerHTML = numberStr;
}


function printArticleAjax(){
//	http://go.dagbladet.no/ego.cgi/printart/http://www.dagbladet.no/labrador/blank.html
	Ext.Ajax.request({
				url: 'http://www.dagbladet.no/labrador/utils/countPrint.php5'
				, method: 'get'
				, scope: this
				});
	window.print();
}

if(top.location.host == 'www.dagbladet.no'){
	var labradorUrl = "http://www.dagbladet.no/admin/labrador/";
	var functionUrl = labradorUrl;
	var sUrl = 'http://www.dagbladet.no/kart/kart.php5';
}else if(top.location.host == 'labrador.dagbladet.no'){
	var labradorUrl = "http://labrador.dagbladet.no/";
	var functionUrl = labradorUrl;
	var sUrl = 'http://labrador.dagbladet.no/kart/kart.php5';	
}

var MAP_ICONS_BASEPATH = "http://gfx.dagbladet.no/maps/pins/";
var gMap;
var mapPoiSet = {};
var gDir; 
var userData = {};
var mapData = {};
var lastLatLng; 
var uploadDialog;
var newMarker;
var globalTag;
var mapPoiSetCollection = {};
var kmlList = [];
var woId;

function loadNewMap(center, zoomlevel, maptype, mapid, width, height, woId, getInfo) {
	
	
	if (GBrowserIsCompatible()) {						
		
		
		if(!woId){
			woId = mapid; 
		}
		
		var mapDiv  = document.getElementById('map-'+woId);
		
		if(mapDiv == null)
		{
			//alert("Could not find DIV with id= map-" + woId + ". Aborting insert operation.");
			return;
		}
		mapDiv.style.width = width + 'px';
		mapDiv.style.height = height + 'px';

		gMap = new GMap2(document.getElementById("map-"+woId));
		
		gMap.enableContinuousZoom();
		gMap.enableDoubleClickZoom();
		gMap.enableScrollWheelZoom();
		gMap.addControl(new GScaleControl());
		gMap.addControl(new GMapTypeControl());
		gMap.addControl(new GSmallMapControl());
		if(width > 500){
			gMap.addMapType(G_PHYSICAL_MAP); // Adding the "Terrain" map type button
		}
		//allow the user to click the map to create a marker

		if(!zoomlevel){
			zoomlevel = 10;
		}
		gMap.setMapType(getMapTypeByName(maptype));

		gMap.setCenter(center, parseInt(zoomlevel));


		gdir = new GDirections(gMap, document.getElementById("travelPlanner_route"));
		GEvent.addListener(gdir, "error", handleErrors);
		GEvent.addListener(gdir, "load", onGDirectionsLoad);

		/*********************************************/
		if(getInfo){			
			var request = GXmlHttp.create();
			//tell the request where to retrieve data from.
			request.open('POST', sUrl+'?op=GetMapInfo&id=' + mapid + '&includePois=0', true);
			//tell the request what to do when the state changes.
			request.onreadystatechange = function() {

				if (request.readyState == 4) {					

					result = eval('(' + request.responseText + ')');			

					gMap.checkResize();

					mapData.mapId = mapid;

					if(result.user_map){

						mapData.interaction_mode = result.user_map;
						mapData.user_marker = result.user_marker;												

						if(result.userData){
							userData = result.userData;			
																					
						}							
						
						GEvent.addListener(gMap,'zoomend', zoomRefresh); 
						GEvent.addListener(gMap,'dragend', markerRefresh); 				
					}
					if(result.route_planner != '1'){						
						$("#travelPlanner_route").hide();
					}

					mapPoiSetCollection = result.poiSets;

					
					for(var i=0; i< mapPoiSetCollection.length; i++){						

						if(mapPoiSetCollection[i].is_external == 0){			//bare ett redigerbart poiset rett på kartet
							mapPoiSet = mapPoiSetCollection[i];
							markerRefresh();						
						}
						else{
							if(mapPoiSetCollection[i].external_kml_url){

								var kmlUrl = mapPoiSetCollection[i].external_kml_url;

								$('#mapLoadingGif').show();
								var kml = new GGeoXml(kmlUrl, function() {
									if (kml.hasLoaded()) {
										gMap.addOverlay(kml);
										$('#mapLoadingGif').hide();
										kmlList[kmlUrl] = kml;																	
									}
								});
								mapPoiSetCollection[i].isHidden = false;
								mapPoiSetCollection[i].kml = kml;
							}														
						}
					}
					
					if(mapPoiSet && mapPoiSet.routes){

						var route = mapPoiSet.routes;						
						
						drawRoute(route.from, route.to, route.via, route.travel_mode);
					}	

					GEvent.addListener(gMap, 'click', handleMapClick);																
					
				} //if
			} //function
			request.send(null);
		}
		else{
			var baseIcon = new GIcon();

			baseIcon.image = 'http://maps.google.com/mapfiles/ms/micons/blue-dot.png';
			
			baseIcon.iconSize = new GSize(34, 34);
			baseIcon.iconAnchor = new GPoint(15, 34);
			baseIcon.infoWindowAnchor = new GPoint(15, 2);

			var marker = new GMarker(center, {draggable: false, icon:baseIcon});

			gMap.addOverlay(marker);
		}				

		/**************************************************/				
	}
}


function findPoisetById(id){
	
	for(var i=0; i< mapPoiSetCollection.length; i++){		
		if(id == mapPoiSetCollection[i].id){
			return mapPoiSetCollection[i];
		}
	}
	
	return 0; 
	
}

function zoomRefresh(){

	var zoomLevel = gMap.getZoom();
	if(zoomLevel < 10){
		markerRefresh();
	}
}

function markerRefresh(){	
	
	
	var bounds = gMap.getBounds();

	var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();

	displayNewMarkers(northEast.lat(), southWest.lat(), northEast.lng(), southWest.lng());
}


function handleMapClick(overlay, latLng, overlayLatLng){
	
	if($('#mapLogo')){		
		$('#mapLogo').hide();
	}
	
	// If user clicked the info window, we let it handle itself
	if(overlay == gMap.getInfoWindow())
		return;
		
	if(overlay){
		//displayInfoWindowForOverlay(overlay, overlayLatLng);
	}
	else if(mapData.interaction_mode){				
		toggleForm(overlay, latLng, overlayLatLng);		
	}
}

function toggleForm(overlay, latlng){			
	
	var form = $('#mapUploadForm');		
	
	if(latlng){
		lastLatLng = latlng; 		
	}
	
	$('#mapFormGeotagList').html('');
	var tags = $('#mapFormTags').children('.selectedTag');
	tags.removeClass('selectedTag');
	
	if(form.css('display') != 'none'){
		form.css('display', 'none');
	}
	else{
		form.css('display', '');
		listPlacesNearby(latlng);
	}	
	
	
	if(mapData.interaction_mode == 2 && !userData.user_id){		
		$('#mapLoggedIn').html('<b>Du må registrere telefonnummer for å legge til innhold. Registrer deg kjapt og smertefritt <a target="_top" href="https://konto.dagbladet.no/?op=RegisterUser&target='+window.location+'">her</a> eller <a target="_top" href="https://konto.dagbladet.no/?op=LoginUser&target='+window.location+'">logg inn</a>.</b>');		
		$('#mapUploadForm').children(':button').attr("disabled","disabled");
		$('#mapUploadForm')[0].reset();
	}
	else if(userData.user_id){				
		$('#mapLoggedIn').html('Du er logget inn som <a href="'+ userData.profile_path+'">' + userData.user_name +'</a>');
		$('#mapFormName').css('display', 'none');
		$('#mapUploadForm')[0].reset();		
	}
	
	
	//$('#mapFormTags').html('');
	
	newMarker = {
		imageId : ''
	};
}


function listPlacesNearby(latlng){
	
	$('#mapFormGeotagList').html('<img src="http://gfx.dagbladet.no/maps/ajax-loader.gif" /> Henter steder...');
	
	$.ajax({
		type: "POST",
		url: sUrl+'?op=ListPlacesNearby',
		dataType: 'json',
		data: 'lat=' + latlng.lat() + '&longt=' + latlng.lng(),
		success: function(result){		
			
			var places = result.places; 
			var str = '';
			
			for(var i=0; i<places.length; i++){
				str += '<a id="geotagLink-'+ places[i].id +'" href="javascript:selectMapGeotag(' + places[i].id + ')" class="mapTagLink">' + places[i].name + '</a>';
			}
			
			if(str){
				$('#mapFormGeotagList').html(str);
			}
			else{
				$('#mapFormGeotagList').html('Ingen treff');
			}
			
		},
		error: function(result){		
			return 0; 		
		}
	});	
}


function selectMapGeotag(id){
	
	var tag = $('#geotagLink-'+ id);	
	var taglist = $('#mapFormGeotag .selectedTag');
	
	
	if(!tag.hasClass('selectedTag')){		
		taglist.removeClass('selectedTag');				
		tag.addClass('selectedTag');
	}
	else{
		tag.removeClass('selectedTag');	
	}
}


function addMarker(){
	
	var title = $('#mapUploadForm input[name="title"]');	
	
	var description = $('#mapUploadForm textarea');
	var userId = ''; 	
	var coordinates = lastLatLng.lat() + ',' + lastLatLng.lng();
	var valid = true;
	
	
	//fetch date
	if(document.getElementById('daySelect')){
		day = document.getElementById('daySelect').value;
		month = document.getElementById('monthSelect').options[document.getElementById('monthSelect').selectedIndex].value;
		year = document.getElementById('yearSelect').value;
		date = day + '-' + month + '-' + year;				
	}
	else{
		var date = ''; 		
	}
	
	//fetch and validate time
	if(document.getElementById('mapTime')){
		var time = document.getElementById('mapTime').value;			
		if(time != ''){
			valid = validTime(time);
		}
	}
	else{
		var time = ''; 
	}		
	
	if(userData.user_id){
		userId = userData.user_id;
		name = userData.user_name;
	}
	else{
		var nameEl = $('#mapFormName input');				
		name = nameEl.val();
	}		
	
	if(newMarker){
		var imageId = newMarker.imageId;
	}
	else{
		var imageId = ''; 
	}
	
	var tags = $('#mapFormTags .selectedTag');
	var tagString = ''; 
	
	
	for(var i=0; i<tags.length; i++){
		var tagtxt = tags[i].innerHTML;					
		tagString += tagtxt + ',';
	}
	
	var geoTag = $('#mapFormGeotagList .selectedTag');
	
	var geotag = '';
	if(geoTag.length){
		var geoId = (geoTag[0].id).split('-');		
		geotag = geoId[1];
	}		
	
	if(valid){

		$.ajax({
			type: "POST",
			url: sUrl+'?op=AddUserPoi',
			dataType: 'json',
			data: 'name=' + name +'&title=' + title.val() + '&description=' + description.val() + '&userId=' + userId + '&mapId=' + mapData.mapId + '&coordinates=' + coordinates + '&imageId=' + imageId + '&tags='+tagString + '&geotag=' + geotag + '&date=' + date + '&time=' + time,
			success: function(result){

				if(result.errorMsg){
					alert(result.errorMsg);
				}
				else{
					$('#mapUploadForm').css('display', 'none');

					var poi = {
						title: title.val(),
						description: description.val(),
						time: time,
						date: date,
						userId: userId,
						latlng: lastLatLng,
						name: name
					}
					if(newMarker.imageId){
						poi.imageId = newMarker.imageId;
						poi.imageWidth = newMarker.imageWidth;
						poi.imageHeight = newMarker.imageHeight;
						poi.imageUrl = newMarker.imageUrl;
					}

					if(!mapPoiSet.id){
						mapPoiSet.id = result.poiSetId;
					}

					createMarker(poi);

					title.val('');
					description.val('');
					$('#fileToUpload').val('');
					if(nameEl){
						nameEl.val('');
					}

					lastLatLng = '';
				}
			},
			error: function(result){

			}
		});
	}
	
}

function createMarker(poi){	

	var baseIcon = new GIcon(G_DEFAULT_ICON);
	/*baseIcon.image = MAP_ICONS_BASEPATH + mapData.user_marker;
	baseIcon.iconSize = new GSize(20, 34);*/

	
	var latlng = poi.latlng;	
	var marker = new GMarker(latlng,{icon:baseIcon});
	//var marker = new GMarker(latlng);	

	gMap.addOverlay(marker);

	GEvent.addListener(marker, 'click', function() {
		
		var infoDiv = document.createElement("div");		
		
		if(poi.imageHeight){			
			var height = parseInt(poi.imageHeight) + 150;			
		}
		else{			
			var height = 150;
		}
		if(poi.imageWidth){
			var width = poi.imageWidth;
		}
		else{
			var width = 273;
		}
		infoDiv.style.height = height +'px';
		infoDiv.style.width = width + 'px';
		
		
		var htmlStr = 		
		'<div style="position: absolute; left: 0px; top: 16px; width: 241px; z-index: 10;">'+
			'<div style="font-family: Arial,sans-serif; font-size: small;">'+
				'<div style="font-weight: bold; font-size: medium; margin-bottom: 0em;">'+ poi.title + '</div>' +
					'<div>';
					
					if(poi.date){
						htmlStr += 'Tidspunkt: '+ poi.date;
					}
					if(poi.time){
						htmlStr += ' kl.' + poi.time + '<br/>';
					}
					
					if(poi.imageId){
						htmlStr += '<img width="'+ poi.imageWidth +'" height="'+ poi.imageHeight +'" src="'+ poi.imageUrl +'"/>';
					}
				 		
					if(poi.user_path){
						var username = '<a href="'+ poi.profile_path +'">'+poi.name+'</a>';
					}
					else{
						if(poi.name){
							var username = poi.name; 
						}
					}
					
					htmlStr += '<br/>'+poi.description+'<br/><br/><em>'+ username +'</em>'+
					'</div>'+
				'<div style="padding-top: 0.7em;" class="iw"/>'+
			'</div>'+
		'</div>';
		
		infoDiv.innerHTML = htmlStr; 
		

		var infoTabs = [
		new GInfoWindowTab("Info", infoDiv)//,

		];		

		//opening window tabs
		gMap.openInfoWindowTabsHtml(latlng, infoTabs);
	});
}


function ajaxFileUpload(btn){
	
	//starting setting some animation when the ajax starts and completes
	$("#loading")
	.ajaxStart(function(){
		$(this).show();
	})
	.ajaxComplete(function(){
		$(this).hide();
	});

	/*
	prepareing ajax file upload
	url: the url of script file handling the uploaded files
	fileElementId: the file type of input element id and it will be the index of  $_FILES Array()
	dataType: it support json, xml
	secureuri:use secure protocol
	success: call back function when the ajax complete
	error: callback function when the ajax failed

	*/
	
	$('#imageContent').html('<img src="http://gfx.dagbladet.no/maps/ajax-loader.gif" />');
	

	
	$.ajaxFileUpload({
		
		url: sUrl + '?op=ImageUpload&mode='+mapData.interaction_mode ,
		secureuri:false,
		fileElementId:'fileToUpload',
		dataType: 'json',
		success: function (data, status){

			if(typeof(data.error) != 'undefined'){

				if(data.error != ''){
					alert(data.error);
					$('#imageContent').html('');
				}
				else{					
					$('#imageContent').html('Bildet er lagt til.');		
					newMarker = new Object();
					newMarker.imageId = data.imageId;
					newMarker.imageUrl = data.imageUrl;
					newMarker.imageWidth = data.width;
					newMarker.imageHeight = data.height;																		
				}
			}									
		},
		error: function (data, status, e){
			alert(e);
		}
	})

	return false;

}


function displayNewMarkers(maxlat, minlat, maxlng, minlng){	
	
	var kmlUrl = sUrl + "?op=GetPoiSet&id=" + mapPoiSet.id + "&mapId=" + mapData.mapId + "&maxlat=" + maxlat + "&minlat=" + minlat + "&maxlng=" + maxlng + "&minlng=" + minlng;	
	
	if(globalTag){
		kmlUrl += '&tag=' + urlencode(globalTag);
	}
	mapPoiSet.kml = new GGeoXml(kmlUrl);
	mapPoiSet.isHidden = false;

	
	gMap.clearOverlays();	

	gMap.addOverlay(mapPoiSet.kml);
}

function drawRoute(from, to, via, travelMode, avoidHighways){
	
	
	gdir.clear();
	
	var locations = [from];
	if(via){
		locations.push(via);
	}
	locations.push(to);
	
	if(travelMode == 2){
		var travelMode = G_TRAVEL_MODE_WALKING;
	}
	else{
		var travelMode = G_TRAVEL_MODE_DRIVING;
	}		
	
	gdir.loadFromWaypoints(locations, { "locale": 'NO_no' , "travelMode":travelMode, "avoidHighways":avoidHighways});
	
}


function getMapTypeByName(mapTypeName)
{
	if(mapTypeName == "normal")
		return G_NORMAL_MAP;
	if(mapTypeName == "satellite")
		return G_SATELLITE_MAP;
	if(mapTypeName == "hybrid")
		return G_HYBRID_MAP;
	if(mapTypeName == "terrain")
		return G_PHYSICAL_MAP;
		
	return G_NORMAL_MAP; // Failover
}




function loadGMapOnClick(lat, longt, zoom, maptype, mapid, width, height, woId, getInfo){
	
	var mapEl = document.getElementById('map-'+woId);	
	mapEl.onclick = null;			
	loadNewMap(new GLatLng(lat, longt), zoom, maptype, mapid, width, height, woId, getInfo);		

}
 


function getDirections(){
	
	var from = document.getElementById('routePlanner_from').value;
	var to = document.getElementById('routePlanner_to').value;	
	
	var radioBtns = document.getElementsByName("routePlanner_travelMode");

	for(var i=0; i<radioBtns.length; i++){
		if(radioBtns[i].checked){
			var travelMode = radioBtns[i].value;
		}
	}
	if(travelMode == 'walk'){
		travelMode = 1;
	}
	else{
		travelMode = 0; 
	}
	
	if(document.getElementById('routePlanner_avoidHighways').checked){
		var avoidHighways = 1;
	}
	else{
		var avoidHighways = 0; 
	}
		
	drawRoute(from, to, '', travelMode, avoidHighways);
}

function toggleRoute(){
	
	var routeEl = document.getElementById('travelPlanner_route');
	
	if(routeEl.style.display == 'none'){
		routeEl.style.display = 'block';
	}
	else{
		routeEl.style.display = 'none';
	}
}


function handleErrors(){
	if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);

	else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code);

	//   else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
	//     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);

	else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);

	else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);

	else alert("An unknown error occurred.");

}


function onGDirectionsLoad(){
	
	$('#travelPlanner_toggleRoute').css("display","block");
	
	var gpoly=gdir.getPolyline();
		
	gpoly.color = "#ff0000";
	gpoly.weight = 3;
	gpoly.opacity = 0.6;
	
}

function selectMarkerTag(nr){
	
	var tag = $('#tagLink-'+nr);	
	
	if(!tag.hasClass('selectedTag')){		
		tag.addClass('selectedTag');
	}
	else{
		tag.removeClass('selectedTag');		
	}
	
}


//////////////////////// maps older than 09.07.09 will be loaded by these functions ////////////////////////

function loadMapOnClick(lat, longt, zoom, maptype, mapid, width, height, woId, markerStr){
	
	var mapEl = document.getElementById('map-'+woId);
	mapEl.onclick = null;		
	
	load_map(lat, longt, zoom, maptype, mapid, width, height, woId, markerStr);		

}

function load_map(lat, longt, zoomlevel, maptype, mapid, width, height, woId, markers) {
	
	if (GBrowserIsCompatible()) {	
					
		if(!woId){
			woId = mapid; 
		}
		
		
		var mapDiv  = document.getElementById('map-'+woId);
		
		mapDiv.style.width = width + 'px';
		mapDiv.style.height = height + 'px';	
		
		map = new GMap2(document.getElementById("map-"+woId));								
		map.addControl(new GScaleControl()); 
		//map.addControl(new GOverviewMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GSmallMapControl());
		if(width > 350){
			map.addMapType(G_PHYSICAL_MAP);
		}
		
		if(!zoomlevel){
			zoomlevel = 10;
		}

		var latlng = new GLatLng(lat, longt); 
		map.setCenter(latlng, parseInt(zoomlevel));
		map.setMapType(maptype);
		var icon = new GIcon();
		icon.image = "http://blink.dagbladet.no/modules/travel/templates/default/ikon.gif";


		var attributes = new Array();

		var baseIcon = new GIcon();

		baseIcon.image = 'http://maps.google.com/mapfiles/ms/micons/red-dot.png';

		baseIcon.iconSize = new GSize(34, 34);
		baseIcon.iconAnchor = new GPoint(15, 34);
		baseIcon.infoWindowAnchor = new GPoint(15, 2);

		var marker = new GMarker(latlng, {draggable: false, icon:baseIcon});

		map.addOverlay(marker);

		
		map.addControl(new GOverviewMapControl());				

			
		
		return map; 
	}	 
}


function selectByTag(nr){
	
	if(nr == 'all'){
		var selectedTags = $('#summertags li.selectedTag');
		selectedTags.removeClass('selectedTag');
		
		globalTag = ''; 
	}
	else{
		var tag = $('#summertags li:eq('+nr+')');			

		if(!tag.hasClass('selectedTag')){
			tag.addClass('selectedTag');
		}
		else{
			tag.removeClass('selectedTag');
		}

		var selectedTags = $('#summertags li.selectedTag');
		var tagstr = '';
		for(var i=0; i<selectedTags.length; i++){
			var text = selectedTags[i].innerHTML;
			pattern = /<(\S+).*>(.*)<\/\1>/;
			matches = text.match(pattern);
			the_string = matches[2];
			tagstr += the_string +',';
		}

		globalTag = tagstr.substr(0, tagstr.length - 1);
	}
	markerRefresh();
}


function urlencode(str) {
	return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}




function validTime(timeStr) {
	

	var timePat = /^(\d{1,2}):(\d{2})/;

	var matchArray = timeStr.match(timePat);
	if (matchArray == null) {
		alert("Tiden er angitt på feil format.")
		return false;
	}
	hour = matchArray[1];
	minute = matchArray[2];
	

	if ((hour < 0  || hour > 23) || (minute<0 || minute > 59)) {		
		alert("Tiden er angitt på feil format.")
		return false;
	}
	else{
		return true; 
	}
	
	
}

function populatedropdown(dayfield, monthfield, yearfield){
	
	var monthtext=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sept','Oct','Nov','Dec'];		
	
	var today=new Date()
	var dayfield=document.getElementById(dayfield)
	var monthfield=document.getElementById(monthfield)
	var yearfield=document.getElementById(yearfield)
	for (var i=0; i<31; i++)
	dayfield.options[i]=new Option(i, i+1)
	dayfield.options[today.getDate()]=new Option(today.getDate(), today.getDate(), true, true) //select today's day
	for (var m=1; m<13; m++)
		monthfield.options[m]=new Option(monthtext[m], m)
	monthfield.options[today.getMonth()]=new Option(monthtext[today.getMonth()], today.getMonth() + 1, true, true) //select today's month
	var thisyear=today.getFullYear()
	for (var y=0; y<20; y++){
		yearfield.options[y]=new Option(thisyear, thisyear)
		thisyear+=1
	}
	yearfield.options[0]=new Option(today.getFullYear(), today.getFullYear(), true, true) //select today's year
}

function toggleKml(id, kmlUrl, el){	
	
	if(id){
		gMap.clearOverlays();
		
		var poiset = findPoisetById(id);
		
		if(poiset.isHidden){
			gMap.addOverlay(poiset.kml);
			poiset.isHidden = false;
		}
		else{
			gMap.removeOverlay(poiset.kml);
			poiset.isHidden = true;
		}
	}
	else{
		gMap.clearOverlays();

		for(var i=0; i< mapPoiSetCollection.length; i++){
			if(mapPoiSetCollection[i].is_external){
				mapPoiSetCollection[i].isHidden = true; 
			}
		}
		
		if(el.checked){
			if(kmlList[kmlUrl]){
				kml = kmlList[kmlUrl];
				gMap.addOverlay(kml);
			}
			else{
				$('#mapLoadingGif').show();		
				kml = new GGeoXml(kmlUrl, function() {
					if (kml.hasLoaded()) {
						gMap.addOverlay(kml);
						$('#mapLoadingGif').hide();
						kmlList[kmlUrl] = kml;
					}
				});
			}
		}		
	}
}



function toggleKmlSelect(kmlUrl){

	gMap.clearOverlays();

	for(var i=0; i< mapPoiSetCollection.length; i++){
		if(mapPoiSetCollection[i].is_external){
			mapPoiSetCollection[i].isHidden = true;
		}
	}

	if(kmlList[kmlUrl]){
		kml = kmlList[kmlUrl];
		gMap.addOverlay(kml);
		panAndZoomToShowAllPois(kml);			
	}
	else{
		$('#mapLoadingGif').show();
		kml = new GGeoXml(kmlUrl, function() {
			if (kml.hasLoaded()) {
				gMap.addOverlay(kml);
				$('#mapLoadingGif').hide();
				kmlList[kmlUrl] = kml;					
				panAndZoomToShowAllPois(kml);	
			}
		});
	}	
}

function panAndZoomToShowAllPois(kml){

	var minBounds;
	var kmlBounds;			
	
	
	/*for(var i=0;i<mapPoiSetCollection.length;i++)	{
		
		if(mapPoiSetCollection[i].is_external){
			kmlBounds = mapPoiSetCollection[i].kml.getDefaultBounds();			
		}
		else{	
			kmlBounds = mapPoiSetCollection[i].getDefaultBounds();
		}
		
		
		if(minBounds == null){
			minBounds = kmlBounds;			
		}
		else if(!minBounds.containsBounds(kmlBounds)){
			minBounds = adjustBounds(minBounds,kmlBounds);			
		}			
	}	*/
	
	minBounds = kml.getDefaultBounds();	
	gMap.setZoom(gMap.getBoundsZoomLevel(minBounds));
	gMap.panTo(minBounds.getCenter());
}

function adjustBounds(minBounds,kmlBounds){
	
	var minSW = minBounds.getSouthWest();
	var minNE = minBounds.getNorthEast();
	var newSLat;
	var newWLng;
	var newNLat;
	var newELng;
	
	// We need to expand the bounds of the map
	var kmlSW = kmlBounds.getSouthWest();
	var newSLat = Math.min(minSW.lat(), kmlSW.lat());
	var newWLng = Math.min(minSW.lng(), kmlSW.lng());
	
	var kmlNE = kmlBounds.getNorthEast();
	var newNLat = Math.max(minNE.lat(),kmlNE.lat());
	var newELng = Math.max(minNE.lng(),kmlNE.lng());
	
	var minSW = new GLatLng(newSLat, newWLng);
	var minNe = new GLatLng(newNLat, newELng);
	return new GLatLngBounds(minSW, minNE);
}