//my light cross browser ajax workhorse
var Ajax = function(){
	var ajaxObject = function(){
	try{return new XMLHttpRequest();}catch(ex){};
	try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(ex){};
	}
	this.onError = function(error){alert(error);}
	this.load = function(url, callbackFunction){        
	try{
		var ao = ajaxObject();
		ao.onreadystatechange = function(){
		if(ao.readyState == 4 || ao.readyState == "complete"){
			callbackFunction(ao.responseText);
		}
		};
		ao.open("GET", url, true);
		ao.send(null);
	}
	catch(ex){this.onError(ex);}
	}	
}

ajax = new Ajax();

function swapMode(id){
	if($(id).style.display == "block") {
		$(id).style.display = "none"
		$(id + "_edit").style.display = "block"
		$(id + "_box").value = js_str_replace("<br>","\n",js_str_replace("<BR>","\n",$(id).innerHTML))
		$(id + "_toggler").innerHTML = "[ SAVE ]"
		$(id + "_box").focus()
	}
	else{
		$(id).style.display = "block"
		$(id + "_edit").style.display = "none"
		$(id + "_toggler").innerHTML = "[ EDIT ]"
		saveEdits(id,js_str_replace("\n","<br>", $(id + "_box").value))
	}
}

function switchDiv(cat){
	//hide all divs called box_
	var obj = getElementsByClassName("catDiv")
	for(i=0;i<obj.length;i++) obj[i].style.display = "none" 	
	$("box_" + cat).style.display = "block"				  	
}

function updateFronts(id)
{
   ajax.load("ajaxfuncs.asp?key=updatefronts&id="+id+"&newvalue="+$("if"+id).value, function(s)
   {
	response = s.split("#")
	$("i"+response[0]).src = "images/" + response[1]
	$("i"+response[0]).style.opacity = 30
	opacity("i"+response[0],30,100,1400)
 })
}

function saveOrder() 
{
  var listorder = Sortable.serialize('list')
  listorder = js_str_replace("&list[]=",",",listorder)
  listorder = js_str_replace("list[]=","",listorder)
  ajax.load("ajaxfuncs.asp?key=savesortorder&list="+listorder)
}

function shopError()
{
	if(confirm("You need to be logged in before you can shop \nDo you want to create a Caleka account now?")) location.href = "signup.asp"
	else return
}

function saveEdits(id,data){
	ajax.load("ajaxfuncs.asp?key=saveedits&field="+id+"&newdata="+data,function(s){
	response = s.split("#")
	$(response[0]).innerHTML = response[1]
	Fat.fade_element(response[0],60,500,"#F4F072",$(response[0]+"_color").value)
})	
	$(id).innerHTML = data
}

function checkProfile() { 
	ste.submit()
	var pname = trim($("pname").value)
	var pimage= trim($("pimage").value)
	var data = $("profileste").value
	document.editpg_form.profile.value = data
	if(!pname.length) { 
		alert("The photographer's name is required")
		$("pname").focus()
		return false
	}
	return true
}

function saveData() { 
  ste.submit()
  document.dataviewform.dataview.value = $("hdataview").value
  return true
}

function deletePhotographer(id,name,sorttd){
	if(confirm("Are you sure you want to permanently delete " + name + "'s profile?")) 
	ajax.load("ajaxfuncs.asp?key=deletephotographer&id="+id+"&sort="+sorttd, function(s){
		opacity("item_" + s, 100, 0, 550)
		setTimeout("hide('item_" + s + "')",600)
	})
	else return
}


function toggler(){
	var obj = getElementsByClassName("all")
	for(i = 0;i < obj.length;i++) if($("all").checked) obj[i].checked = true
	else obj[i].checked = false
}

function deleteUsers(){
	var cb = getCheckedBoxes()
	if(cb.length){
		if(confirm("Are you sure you want to permanently delete these "+cb.length+" users?")) 
		ajax.load("ajaxfuncs.asp?key=deleteuser&ids="+cb, function(s){
			response = s.split(",")
			for(i = 0;i < response.length;i ++) $("pg_"+response[i]).style.display = "none"
		}) 
		else return
	}
}

function getCheckedBoxes(){
	var obj = new Array()
	var o = getElementsByClassName("all")
	if(!o.length && o.checked) return o.value
	for(i=0;i < o.length;i++) if(o[i].checked) obj.push(o[i].value)
	return(obj)
}

function checkLogin(){
	username = trim($("username").value)
	password = trim($("password").value)
	ajax.load("ajaxfuncs.asp?key=login&username="+username+"&password="+password,function(s){
		var myform = document.forms.login_form
		response   = s.split("#")
		if(response[0] == "ERROR"){
			alert("Please enter your "+response[1] + " in the textbox provided")
			myform[response[1]].focus()
		}
		if(response[0] == "NOACCESS") alert(response[1])
		if(response[0] == "ACCESS") { //do some dynamic GUI changes
			if(readCookie("root") == "root") window.location.reload(true) //if root login refresh page...too many elements to change by ajax
			else{
				$("tbl_loggedout").style.display = "none"
				$("tbl_loggedin").style.display = "block"
				$("namelink").innerHTML = readCookie("username")
				$("basketspan").style.display = "block"
				$("basket").innerHTML = readCookie("basket") + "&nbsp;" 
				$("basketTD").style.backgroundColor = "#F4F072"
				$("shopOn").style.display = "block"
				$("shopOff").style.display = "none"
			}
		}
	})
}

function RemoveThis(id){
	if(confirm("Are you sure you want to remove this item?")) ajax.load("ajaxfuncs.asp?key=removeshop&id=" + id, function(s){
		opacity("tr_"+ s, 100, 0, 700);
		setTimeout("hide('tr_"+s+"')",600)
		$("basket").innerHTML = readCookie("basket")
		if(readCookie("basket") == 0) {
			$("empty_basket").style.display = "block"
			$("shop_header").style.display = "none" //hide it all then
			$("td_head").style.backgroundColor = "#ffffff"
		}
  })
	else return
}

//manages the update and changing of images and thumbnails
function AjaxHandler(catId,desc,code){
		if(code == "updatethumb")   desc = $("editthumb_" + catId).value
		if(code == "updateimage")   desc = $("editimage_" + catId).value
		if(code == "updatediagram") desc = $("editdiagram_" + catId).value
		if(code == "addthumb")	    desc = $("newthumbnail").value
		
		if(!trim(desc).length) return; //if no value is given ignore
		
		ajax.load("ajaxfuncs.asp?key="+code+"&id="+catId+"&desc="+desc, function(s){
				obj = s.split("#")	

				//make dynamic changes to the interface
				switch(obj[0]){
					case "DELETE":
						opacity(obj[1], 100, 0, 550)
						opacity("div_" + obj[1], 100, 0, 550)
						setTimeout("hide('"+obj[1]+"')",600)
						break;
					case "UPDATE":
						$("editthumb_"+obj[1]).value = obj[2]
						$("thumbimg_" +obj[1]).src   = "images/" + obj[2];	
						fade("thumb_" +obj[1],800)
					break;
					case "UPDATEIMAGE": //main preview image has been changed. update it
						$("editimage_"+obj[1]).value = obj[2]
						$("mainimage_"+obj[1]).src   = "images/" + obj[2]
						fade("s_Main",600)
					break;
					case "UPDATEDIAGRAM": //diagram image has been changed. update it
						$("editdiagram_" +obj[1]).value = obj[2]
						$("diagramimage_"+obj[1]).src   = "images/" + obj[2];
						fade("diagram_td",600)
					break;
					case "ADDTHUMB":		
						var img = document.createElement("IMG")
						img.setAttribute("src", "images/" + obj[2])
						img.setAttribute("id","thumbimg_" + obj[1])
						img.setAttribute("height",90)
						img.setAttribute("width",100)
						img.style.border = "solid #D4CF11 2px"
			
						var newDiv = document.createElement("DIV")
						newDiv.setAttribute("id","thumb_" + obj[1])
						newDiv.className = "thumbDiv"
						newDiv.appendChild(img)
						
						newDiv.innerHTML += "<br><br><input type='text' value='"+obj[2]+"' class='editbox2' id='editthumb_"+obj[1]+"'><br /><button onclick=\"AjaxHandler("+obj[1]+",'null','updatethumb');this.blur();return false;\" class='btn'>update</button>&nbsp;<button onclick=\"this.blur();if(confirm('Are you sure you want to delete this thumbnail?')) {AjaxHandler("+obj[1]+",'null','deletethumb');} return false;\" class='btn'>delete</button>"
						newDiv.style.opacity = 0
						$("canvas").appendChild(newDiv)
						opacity("thumb_" + obj[1], 0, 100, 400)
					break;
					default:alert(response);break;
				}	
		})
}





function hide(id){
	$(id).style.display = "none"
	if($("div_" + id)) $("div_" + id).style.display = "none"
}

function newCategory(typeid){
	var cat  = trim($("newcategory").value)
	var asort= trim($("newsort").value)
	var ttip = trim($("newtooltip").value)
	if(!cat.length) return 
	location.href = "ajaxfuncs.asp?key=addcategory&cat="+cat+"&asort="+asort+"&ttip="+ttip+"&typeid="+typeid; //,function(s){
}




function updateRange(id){
	var name = trim($("name_" + id).value)
	var desc = trim($("description_" + id).value)
	var active = $("active_" + id).checked
	if(!name.length) {alert("You need to enter the range name here");return;}
	if(!desc.length) {alert("You need to enter the range description here");return;}
	ajax.load("ajaxfuncs.asp?key=updaterange&id=" + id + "&name=" + name + "&desc=" + desc + "&active=" + active,function(s){
		fade("range_" + s)
	})
}


function addRange(){ //add a new range
	var name = trim($("newrangename").value)
	var desc = trim($("newrangedescription").value)
	var active = $("newrangeactive").checked
	if(!name.length) {alert("You need to enter the range name here");return;}
	if(!desc.length) {alert("You need to enter the range description here");return;}
	location.href = "ajaxfuncs.asp?key=addrange&name="+name+"&desc="+desc+"&active="+active;
}

//update categories
function updateCategories(id){
	var cat     = $("acategory_" + id).value
	var asort   = $("asort_" + id).value
	var tooltip = $("atooltip_" + id).value
   if(!trim(cat).length) { $("acategory_" + id).value = $("hcategory_" + id).value; return;}
   if(!trim(asort).length) { $("asort_" + id).value = $("hsort_" + id).value; return;}  
   ajax.load("ajaxfuncs.asp?key=updatecat&id=" + id + "&cat=" + cat + "&asort=" + asort  + "&tooltip=" + tooltip,function(s){
		fade("Category_" + s,700)
   })
}


function CreateProduct(){
	var data_string = ""
	var myform = document.forms.update_form
	for(i=0;i<myform.length - 1;i++) myform[i].style.backgroundColor = "white"
	for(i=0;i<myform.length - 1;i++) {
		if(!trim(myform[i].value).length) {
			myform[i].style.backgroundColor = "lightyellow"
			myform[i].focus()
			return false
		}
	}
	return true
}

//update a calendar
function AjaxUpdater(key){
	if(key == "Description" && navigator.appName == "Microsoft Internet Explorer"){
		//have to use a hidden iframe here to submit this data if using IE, else use AJAX
		myform = document.frames("mydescription").document.forms("frm_description")
		myform["newvalue"].value = document.forms.update_form.Description.value
		myform["calendar"].value = readCookie("calendar")
		myform["field"].value = "Description"
		myform["browser"].value = "MSIE"
		myform.submit()
	}
	else{
		var myform = document.forms.update_form
		if(myform[key].type == "checkbox") myform[key].value = myform[key].checked //cater for checkboxes
		ajax.load("ajaxfuncs.asp?key=updatecalendar&calendar=" + readCookie("calendar") + "&field=" + key + "&newvalue=" + myform[key].value, function(s){
			Fat.fade_element("s_" + s, 60, 300, '#F4F072', '#F4F3F1')
		})
	}
}


function fade(id,duration){
var du = (duration) ? duration : 1000
Fat.fade_element(id, 60, du, '#F4F072', '#ffffff')
}


function checkForm(){
	var obj = getElementsByClassName("req")
	for(i=0;i<obj.length;i++) obj[i].style.backgroundColor = "white"
	for(i=0;i<obj.length;i++) {
	if(!trim(obj[i].value).length) {
		obj[i].focus()
		obj[i].style.backgroundColor = "lightyellow"
		return
	}
	if(!checkemail($("email").value)) {
		$("email").focus()
		$("email").style.backgroundColor = "lightyellow"
		return
	}
}
document.forms.frm_message.submit()
}

//use ajax to do the registration. all validation is back end
function CheckRegistration(frm){
	var data = ""	
	var myform = document.forms.frmregister
	for(i=0;i<myform.length - 1;i++) myform[i].style.backgroundColor = "white"
	for(i=0;i<myform.length - 1;i++) {
		if(!trim(myform[i].value).length || (myform[i].id == "email" && !checkemail(myform[i].value))){
			myform[i].focus()
			myform[i].style.backgroundColor = "lightyellow"
			return
		}
	else if (trim(myform["passwordA"].value) && (trim(myform["passwordA"].value) != trim(myform["passwordB"].value))){
			myform["passwordB"].focus()
			myform["passwordA"].style.backgroundColor = "lightyellow"
			myform["passwordB"].style.backgroundColor = "lightyellow"
			return
	}
		else {
			data += trim(myform[i].value) + ","
		}
	}
	data = data.slice(0,data.length-1)
	ajax.load("ajaxfuncs.asp?key=addmember&data=" + data, function(s){
	  	if(s == "DONE"){
		alert("You have been added to the Caleka database \nYou may now log in using your new username and password")
		location.href = "index.asp"
	}
	else alert(response)
	})
	return false
}

//load the details page for selected calendar object
function getDetails(id, Cat, typeid){
	location.href = "details.asp?cat=" + Cat + "&id=" + id + "&type=" + typeid
}

function recoverPassword(){
	do{
		email = prompt("Please enter the email address you used to register","")
	}while(!trim(email).length)
	ajax.load("ajaxfuncs.asp?key=recoverpassword&email=" + email, function(s){
	  alert(s)
	})
}


function toggleProvince(){
	if($("country").value != "ZA"){
		$("province").value = "I"
		$("province").disabled = true
	}
	else {
		$("province").value = "Gauteng"
		$("province").disabled = false
	}
}
function thwartMe(){ //user must not select international and south africa at the same time
	if($("country").value == "ZA" && $("province").value == "I") $("province").value = "Gauteng"
}

function checkemail(str){ 
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if(filter.test(str)) result = true 
	else result = false 
	return result 
}

function js_str_replace(replaceChar, replaceWith, tString){
	for(i=0;i<tString.length;i++) tString = tString.replace(replaceChar, replaceWith)
    return(tString)	
}

function trim(_1){return _1.replace(/^\s+|\s+$/g,"").replace(/\s+/g," ");}function checkemail(_2){var _3=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;if(_3.test(_2)){result=true;}else{result=false;}return result;}function numbersonly(e){var _5=e.charCode?e.charCode:e.keyCode;if(_5!=8){if(_5<48||_5>57){return false;}}}function IsNumeric(_6){var _7="0123456789.";var _8=true;var _9;for(i=0;i<_6.length&&_8==true;i++){_9=_6.charAt(i);if(_7.indexOf(_9)==-1){_8=false;}}return _8;}function js_str_replace(_12,_13,_14){for(i=0;i<_14.length;i++){_14=_14.replace(_12,_13);}return (_14);}function readCookie(_15){var _16=_15+"=";var _17="";if(document.cookie.length>0){offset=document.cookie.indexOf(_16);if(offset!=-1){offset+=_16.length;end=document.cookie.indexOf(";",offset);if(end==-1){end=document.cookie.length;}_17=unescape(document.cookie.substring(offset,end));}}return (_17);}function submitenter(_18,e){var _1a;if(window.event){_1a=window.event.keyCode;}else{if(e){_1a=e.which;}else{return true;}}if(_1a==13){checkLogin();return false;}else{return true;}}function getElementsByClassName(_31){node=document.getElementsByTagName("body")[0];var a=[];var re=new RegExp("\\b"+_31+"\\b");var els=node.getElementsByTagName("*");for(var i=0,j=els.length;i<j;i++){if(re.test(els[i].className)){a.push(els[i]);}}return a;}function opacity(id,_37,_38,_39){var _3a=Math.round(_39/100);var _3b=0;if(_37>_38){for(i=_37;i>=_38;i--){setTimeout("changeOpac("+i+",'"+id+"')",(_3b*_3a));_3b++;}}else{if(_37<_38){for(i=_37;i<=_38;i++){setTimeout("changeOpac("+i+",'"+id+"')",(_3b*_3a));_3b++;}}}}function changeOpac(_3c,id){var _3e=document.getElementById(id).style;_3e.opacity=(_3c/100);_3e.MozOpacity=(_3c/100);_3e.KhtmlOpacity=(_3c/100);_3e.filter="alpha(opacity="+_3c+")";}var Fat={make_hex:function(r,g,b){r=r.toString(16);if(r.length==1){r="0"+r;}g=g.toString(16);if(g.length==1){g="0"+g;}b=b.toString(16);if(b.length==1){b="0"+b;}return "#"+r+g+b;},fade_all:function(){var a=document.getElementsByTagName("*");for(var i=0;i<a.length;i++){var o=a[i];var r=/fade-?(\w{3,6})?/.exec(o.className);if(r){if(!r[1]){r[1]="";}if(o.id){Fat.fade_element(o.id,null,null,"#"+r[1]);}}}},fade_element:function(id,_9,_a,_b,to){if(!_9){_9=30;}if(!_a){_a=3000;}if(!_b||_b=="#"){_b="#FFFF33";}if(!to){to=this.get_bgcolor(id);}var _d=Math.round(_9*(_a/1000));var _e=_a/_d;var _f=_e;var _10=0;if(_b.length<7){_b+=_b.substr(1,3);}if(to.length<7){to+=to.substr(1,3);}var rf=parseInt(_b.substr(1,2),16);var gf=parseInt(_b.substr(3,2),16);var bf=parseInt(_b.substr(5,2),16);var rt=parseInt(to.substr(1,2),16);var gt=parseInt(to.substr(3,2),16);var bt=parseInt(to.substr(5,2),16);var r,g,b,h;while(_10<_d){r=Math.floor(rf*((_d-_10)/_d)+rt*(_10/_d));g=Math.floor(gf*((_d-_10)/_d)+gt*(_10/_d));b=Math.floor(bf*((_d-_10)/_d)+bt*(_10/_d));h=this.make_hex(r,g,b);setTimeout("Fat.set_bgcolor('"+id+"','"+h+"')",_f);_10++;_f=_e*_10;}setTimeout("Fat.set_bgcolor('"+id+"','"+to+"')",_f);},set_bgcolor:function(id,c){var o=document.getElementById(id);o.style.backgroundColor=c;},get_bgcolor:function(id){var o=document.getElementById(id);while(o){var c;if(window.getComputedStyle){c=window.getComputedStyle(o,null).getPropertyValue("background-color");}if(o.currentStyle){c=o.currentStyle.backgroundColor;}if((c!=""&&c!="transparent")||o.tagName=="BODY"){break;}o=o.parentNode;}if(c==undefined||c==""||c=="transparent"){c="#FFFFFF";}var rgb=c.match(/rgb\s*\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/);if(rgb){c=this.make_hex(parseInt(rgb[1]),parseInt(rgb[2]),parseInt(rgb[3]));}return c;}};var fx=new Object();fx.Base=function(){};fx.Base.prototype={setOptions:function(_1){this.options={duration:500,onComplete:"",transition:fx.sinoidal};Object.extend(this.options,_1||{});},step:function(){var _2=(new Date).getTime();if(_2>=this.options.duration+this.startTime){this.now=this.to;clearInterval(this.timer);this.timer=null;if(this.options.onComplete){setTimeout(this.options.onComplete.bind(this),10);}}else{var _3=(_2-this.startTime)/(this.options.duration);this.now=this.options.transition(_3)*(this.to-this.from)+this.from;}this.increase();},custom:function(_4,to){if(this.timer!=null){return;}this.from=_4;this.to=to;this.startTime=(new Date).getTime();this.timer=setInterval(this.step.bind(this),13);},hide:function(){this.now=0;this.increase();},clearTimer:function(){clearInterval(this.timer);this.timer=null;}};fx.Layout=Class.create();fx.Layout.prototype=Object.extend(new fx.Base(),{initialize:function(el,_7){this.el=$(el);this.el.style.overflow="hidden";this.iniWidth=this.el.offsetWidth;this.iniHeight=this.el.offsetHeight;this.setOptions(_7);}});fx.Height=Class.create();Object.extend(Object.extend(fx.Height.prototype,fx.Layout.prototype),{increase:function(){this.el.style.height=this.now+"px";},toggle:function(){if(this.el.offsetHeight>0){this.custom(this.el.offsetHeight,0);}else{this.custom(0,this.el.scrollHeight);}}});fx.Width=Class.create();Object.extend(Object.extend(fx.Width.prototype,fx.Layout.prototype),{increase:function(){this.el.style.width=this.now+"px";},toggle:function(){if(this.el.offsetWidth>0){this.custom(this.el.offsetWidth,0);}else{this.custom(0,this.iniWidth);}}});fx.Opacity=Class.create();fx.Opacity.prototype=Object.extend(new fx.Base(),{initialize:function(el,_9){this.el=$(el);this.now=1;this.increase();this.setOptions(_9);},increase:function(){if(this.now==1&&(/Firefox/.test(navigator.userAgent))){this.now=0.9999;}this.setOpacity(this.now);},setOpacity:function(_a){if(_a==0&&this.el.style.visibility!="hidden"){this.el.style.visibility="hidden";}else{if(this.el.style.visibility!="visible"){this.el.style.visibility="visible";}}if(window.ActiveXObject){this.el.style.filter="alpha(opacity="+_a*100+")";}this.el.style.opacity=_a;},toggle:function(){if(this.now>0){this.custom(1,0);}else{this.custom(0,1);}}});fx.sinoidal=function(_b){return ((-Math.cos(_b*Math.PI)/2)+0.5);};fx.linear=function(_c){return _c;};fx.cubic=function(_d){return Math.pow(_d,3);};fx.circ=function(_e){return Math.sqrt(_e);};var fileLoadingImage="images/loading.gif";var fileBottomNavCloseImage="images/closelabel.gif";var resizeSpeed=6;var borderSize=10;var imageArray=new Array;var activeImage;if(resizeSpeed>10){resizeSpeed=10;}if(resizeSpeed<1){resizeSpeed=1;}resizeDuration=(11-resizeSpeed)*100;Object.extend(Element,{hide:function(){for(var i=0;i<arguments.length;i++){var _2=$(arguments[i]);_2.style.display="none";}},show:function(){for(var i=0;i<arguments.length;i++){var _4=$(arguments[i]);_4.style.display="";}},getWidth:function(_5){_5=$(_5);return _5.offsetWidth;},setWidth:function(_6,w){_6=$(_6);_6.style.width=w+"px";},getHeight:function(_8){_8=$(_8);return _8.offsetHeight;},setHeight:function(_9,h){_9=$(_9);_9.style.height=h+"px";},setTop:function(_b,t){_b=$(_b);_b.style.top=t+"px";},setSrc:function(_d,_e){_d=$(_d);_d.src=_e;},setInnerHTML:function(_f,_10){_f=$(_f);_f.innerHTML=_10;}});Array.prototype.removeDuplicates=function(){for(i=1;i<this.length;i++){if(this[i][0]==this[i-1][0]){this.splice(i,1);}}};Array.prototype.empty=function(){for(i=0;i<=this.length;i++){this.shift();}};var Lightbox=Class.create();Lightbox.prototype={initialize:function(){if(!document.getElementsByTagName){return;}var _11=document.getElementsByTagName("a");for(var i=0;i<_11.length;i++){var _13=_11[i];var _14=String(_13.getAttribute("rel"));if(_13.getAttribute("href")&&(_14.toLowerCase().match("lightbox"))){_13.onclick=function(){myLightbox.start(this);return false;};}}var _15=document.getElementsByTagName("body").item(0);var _16=document.createElement("div");_16.setAttribute("id","overlay");_16.onclick=function(){myLightbox.end();return false;};_15.appendChild(_16);var _17=document.createElement("div");_17.setAttribute("id","lightbox");_17.style.display="none";_15.appendChild(_17);var _18=document.createElement("div");_18.setAttribute("id","outerImageContainer");_17.appendChild(_18);var _19=document.createElement("div");_19.setAttribute("id","imageContainer");_18.appendChild(_19);var _1a=document.createElement("img");_1a.setAttribute("id","lightboxImage");_19.appendChild(_1a);var _1b=document.createElement("div");_1b.setAttribute("id","hoverNav");_19.appendChild(_1b);var _1c=document.createElement("a");_1c.setAttribute("id","prevLink");_1c.setAttribute("href","#");_1b.appendChild(_1c);var _1d=document.createElement("a");_1d.setAttribute("id","nextLink");_1d.setAttribute("href","#");_1b.appendChild(_1d);var _1e=document.createElement("div");_1e.setAttribute("id","loading");_19.appendChild(_1e);var _1f=document.createElement("a");_1f.setAttribute("id","loadingLink");_1f.setAttribute("href","#");_1f.onclick=function(){myLightbox.end();return false;};_1e.appendChild(_1f);var _20=document.createElement("img");_20.setAttribute("src",fileLoadingImage);_1f.appendChild(_20);var _21=document.createElement("div");_21.setAttribute("id","imageDataContainer");_21.className="clearfix";_17.appendChild(_21);var _22=document.createElement("div");_22.setAttribute("id","imageData");_21.appendChild(_22);var _23=document.createElement("div");_23.setAttribute("id","imageDetails");_22.appendChild(_23);var _24=document.createElement("span");_24.setAttribute("id","caption");_23.appendChild(_24);var _25=document.createElement("span");_25.setAttribute("id","numberDisplay");_23.appendChild(_25);var _26=document.createElement("div");_26.setAttribute("id","bottomNav");_22.appendChild(_26);var _27=document.createElement("a");_27.setAttribute("id","bottomNavClose");_27.setAttribute("href","#");_27.onclick=function(){myLightbox.end();return false;};_26.appendChild(_27);var _28=document.createElement("img");_28.setAttribute("src",fileBottomNavCloseImage);_27.appendChild(_28);overlayEffect=new fx.Opacity(_16,{duration:300});overlayEffect.hide();imageEffect=new fx.Opacity(_1a,{duration:350,onComplete:function(){imageDetailsEffect.custom(0,1);}});imageEffect.hide();imageDetailsEffect=new fx.Opacity("imageDataContainer",{duration:400,onComplete:function(){navEffect.custom(0,1);}});imageDetailsEffect.hide();navEffect=new fx.Opacity("hoverNav",{duration:100});navEffect.hide();},start:function(_29){hideSelectBoxes();var _2a=getPageSize();Element.setHeight("overlay",_2a[1]);overlayEffect.custom(0,0.8);imageArray=[];imageNum=0;if(!document.getElementsByTagName){return;}var _2b=document.getElementsByTagName("a");if((_29.getAttribute("rel")=="lightbox")){imageArray.push(new Array(_29.getAttribute("href"),_29.getAttribute("title")));}else{for(var i=0;i<_2b.length;i++){var _2d=_2b[i];if(_2d.getAttribute("href")&&(_2d.getAttribute("rel")==_29.getAttribute("rel"))){imageArray.push(new Array(_2d.getAttribute("href"),_2d.getAttribute("title")));}}imageArray.removeDuplicates();while(imageArray[imageNum][0]!=_29.getAttribute("href")){imageNum++;}}var _2e=getPageSize();var _2f=getPageScroll();var _30=_2f[1]+(_2e[3]/15);Element.setTop("lightbox",_30);Element.show("lightbox");this.changeImage(imageNum);},changeImage:function(_31){activeImage=_31;Element.show("loading");imageDetailsEffect.hide();imageEffect.hide();navEffect.hide();Element.hide("prevLink");Element.hide("nextLink");Element.hide("numberDisplay");imgPreloader=new Image();imgPreloader.onload=function(){Element.setSrc("lightboxImage",imageArray[activeImage][0]);myLightbox.resizeImageContainer(imgPreloader.width,imgPreloader.height);};imgPreloader.src=imageArray[activeImage][0];},resizeImageContainer:function(_32,_33){this.wCur=Element.getWidth("outerImageContainer");this.hCur=Element.getHeight("outerImageContainer");wDiff=(this.wCur-borderSize*2)-_32;hDiff=(this.hCur-borderSize*2)-_33;reHeight=new fx.Height("outerImageContainer",{duration:resizeDuration});reHeight.custom(Element.getHeight("outerImageContainer"),_33+(borderSize*2));reWidth=new fx.Width("outerImageContainer",{duration:resizeDuration,onComplete:function(){imageEffect.custom(0,1);}});reWidth.custom(Element.getWidth("outerImageContainer"),_32+(borderSize*2));if((hDiff==0)&&(wDiff==0)){if(navigator.appVersion.indexOf("MSIE")!=-1){pause(250);}else{pause(100);}}Element.setHeight("prevLink",_33);Element.setHeight("nextLink",_33);Element.setWidth("imageDataContainer",_32+(borderSize*2));Element.setWidth("hoverNav",_32+(borderSize*2));this.showImage();},showImage:function(){Element.hide("loading");myLightbox.updateDetails();this.preloadNeighborImages();},updateDetails:function(){Element.show("caption");Element.setInnerHTML("caption",imageArray[activeImage][1]);if(imageArray.length>1){Element.show("numberDisplay");Element.setInnerHTML("numberDisplay","Image "+eval(activeImage+1)+" of "+imageArray.length);}myLightbox.updateNav();},updateNav:function(){if(activeImage!=0){Element.show("prevLink");document.getElementById("prevLink").onclick=function(){myLightbox.changeImage(activeImage-1);return false;};}if(activeImage!=(imageArray.length-1)){Element.show("nextLink");document.getElementById("nextLink").onclick=function(){myLightbox.changeImage(activeImage+1);return false;};}this.enableKeyboardNav();},enableKeyboardNav:function(){document.onkeydown=this.keyboardAction;},disableKeyboardNav:function(){document.onkeydown="";},keyboardAction:function(e){if(e==null){keycode=event.keyCode;}else{keycode=e.which;}key=String.fromCharCode(keycode).toLowerCase();if((key=="x")||(key=="o")||(key=="c")){myLightbox.end();}else{if(key=="p"){if(activeImage!=0){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage-1);}}else{if(key=="n"){if(activeImage!=(imageArray.length-1)){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage+1);}}}}},preloadNeighborImages:function(){if((imageArray.length-1)>activeImage){preloadNextImage=new Image();preloadNextImage.src=imageArray[activeImage+1][0];}if(activeImage>0){preloadPrevImage=new Image();preloadPrevImage.src=imageArray[activeImage-1][0];}},end:function(){this.disableKeyboardNav();Element.hide("lightbox");imageEffect.toggle();overlayEffect.custom(0.8,0);showSelectBoxes();}};function getPageScroll(){var _35;if(self.pageYOffset){_35=self.pageYOffset;}else{if(document.documentElement&&document.documentElement.scrollTop){_35=document.documentElement.scrollTop;}else{if(document.body){_35=document.body.scrollTop;}}}arrayPageScroll=new Array("",_35);return arrayPageScroll;}function getPageSize(){var _36,yScroll;if(window.innerHeight&&window.scrollMaxY){_36=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY;}else{if(document.body.scrollHeight>document.body.offsetHeight){_36=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{_36=document.body.offsetWidth;yScroll=document.body.offsetHeight;}}var _37,windowHeight;if(self.innerHeight){_37=self.innerWidth;windowHeight=self.innerHeight;}else{if(document.documentElement&&document.documentElement.clientHeight){_37=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else{if(document.body){_37=document.body.clientWidth;windowHeight=document.body.clientHeight;}}}if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}if(_36<_37){pageWidth=_37;}else{pageWidth=_36;}arrayPageSize=new Array(pageWidth,pageHeight,_37,windowHeight);return arrayPageSize;}function getKey(e){if(e==null){keycode=event.keyCode;}else{keycode=e.which;}key=String.fromCharCode(keycode).toLowerCase();if(key=="x"){}}function listenKey(){document.onkeypress=getKey;}function showSelectBoxes(){selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="visible";}}function hideSelectBoxes(){selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="hidden";}}function pause(_39){var now=new Date();var _3b=now.getTime()+_39;while(true){now=new Date();if(now.getTime()>_3b){return;}}}function initLightbox(){myLightbox=new Lightbox();}
