var ENABLE_DEBUG=1;

function OpenKeywordWindow(){
	var b="/fotoweb/Keywords.fwx";
	var a="dependent=0,width=450,height=550,menubar=0,scrollbars=0,status=0,titlebar=0,toolbar=0,resizable=1";

	window.open(b,"FWKeywordWindow",a)
}



function OpenGoogleMaps(b,d,c){
	fwStopEventPropagation(b);
	var a="http://maps.google.com/?ie=UTF8&z=14&t=h&q="+d+","+c;
	
	OpenInNewWindow(a,"gmaps",true)
}


	
function OpenInNewWindow(a,b,c){
	if(c==null||c==''){
		c="dependent=0,menubar=1,scrollbars=1,location=1,status=1,titlebar=1,toolbar=1,resizable=1";
	}
	
	var d=window.open(a,b,c);d.focus();
}



function OpenCompingImageWindow(h,f,a){
	var d="/fotoweb/Zoom.fwx?"+h;
	var b="dependent=0,width="+f+",height="+a+",menubar=0,scrollbars=0,status=0,titlebar=0,toolbar=0,resizable=1";
	var g;
	var c="";
	
	g=window.open(d,c,b);g.focus()
}



function OpenPlayerWindow(c){
	var b="/fotoweb/Player.fwx?"+c;
	var a="dependent=0,width=700,height=500,menubar=0,scrollbars=1,status=0,titlebar=0,toolbar=0,resizable=1";
	
	window.open(b,"FWPlayer",a)
}



function OpenDetailWindow(c){
	var b="/fotoweb/Detail.fwx?"+c;
	var a="dependent=yes,width=800,height=700,menubar=0,scrollbars=1,status=0,titlebar=0,toolbar=0,resizable=1";
	
	window.open(b,"Detail",a)
	
}



function OpenImageNoteDialog(c){
	var b="/fotoweb/ImageNote.fwx";
	var a="dependent=yes,width=650,height=280,menubar=0,scrollbars=0,status=0,titlebar=0,toolbar=0";
	b+="?f="+c;
	
	window.open(b,"ImageNote",a)
}



function fwServerErrorPageToggler(){
	var d=document.getElementById("errorDetails");
	var c=document.getElementById("detailIcon");
	
	if(!d){
		return
	}
	
	var a,b;
	
	if(d.style.visibility=="hidden"){
		a="visible";
		b="/fotoweb/rsrc/CollapseIcon.gif"
	}else{
		a="hidden";b="/fotoweb/rsrc/ExpandIcon.gif"
	}
	
	d.style.visibility=a;
	
	if(c){
		c.src=b
	}
}




function fwDisplayMessage(c,b,a){
	if(c){
		alert(b+"\n\n"+a)
	}
	
	return(true)
}



function fwGetConfirmation(c,b,a){
	if(c){
		return(confirm(b+"\n\n"+a))
	}
	
	return(false)
}



function fwGetBrowserData(){
	var a=navigator.userAgent.toLowerCase();
	var b=navigator.appVersion.toLowerCase();
	
	this.isDOM=(document.getElementById)?1:0;
	this.isMozilla=(a.indexOf("mozilla")!=-1&&a.indexOf("compatible")==-1)?1:0;
	this.isMozilla4=(this.isMozilla&&!this.isDOM&&document.layers)?1:0;
	this.isFirefox=(a.indexOf("firefox")!=-1)?1:0;
	this.isMozillaDOM=(this.isDOM&&this.isMozilla)?1:0;
	this.isExplorer=(a.indexOf("msie")!=-1)?1:0;
	this.isExplorer4=(this.isExplorer&&!this.isDOM&&document.all)?1:0;
	this.isExplorer5=(b.indexOf("msie 5")>-1&&this.isDOM)?1:0;
	this.isExplorer7=(b.indexOf("msie 7")>-1&&this.isDOM)?1:0;
	this.isExplorerDOM=(this.isDOM&&this.isExplorer)?1:0;
	this.isOpera=(a.indexOf("opera")!=-1)?1:0;
	this.isOpera5=(a.indexOf("opera 5")!=-1||a.indexOf("opera/5")!=-1)?1:0;
	this.isKonqueror=(a.indexOf("konqueror")!=-1)?1:0;
	this.isSafari=(a.indexOf("safari")!=-1)?1:0;
	this.isOmniWeb=(a.indexOf("omniweb")!=-1)?1:0;
	this.isWebTV=(a.indexOf("webtv")!=-1)?1:0;
	this.isICab=(a.indexOf("icab")!=-1)?1:0;
	
	return(this)}var g_browser=new fwGetBrowserData();
	
	var g_FireFoxConsoleService=null;
	
	if(g_browser.isMozillaDOM&&g_browser.isForefox){
		try{
			g_FireFoxConsoleService=Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService)
		}catch(e){g_FireFoxConsoleService=null
	}
}



	
function fwDebugPrint(a){
	if(!ENABLE_DEBUG){
		return
	}
	
	if(g_browser.isMozillaDOM&&g_browser.isFirefox){
		if(g_FireFoxConsoleService){
			g_FireFoxConsoleService.logStringMessage("FW JS Menu: "+a)
		}else{
			dump(a+"\r\n")
		}
		return
	}
	
	if(g_browser.isOpera){
		opera.postError(a)
	}
}




function fwAddEvent(c,d,g,a){
	if(typeof c.addEventListener!="undefined"){
		c.addEventListener(d,g,a)
	}else{
		var b="on"+d;
		var f=c;
		
		if((typeof c[b])!="function"){
			c[b]=g
		}else{
			c[b]=function(){
				g()
			}
		}
	}
	
	return(true)
}




function fwGetObjectIdFromEvent(a){
	a=(a)?a:((window.event)?window.event:"");
	
	if(a){
		var b;
		if(a.target){
			if(a.currentTarget&&(a.currentTarget!=a.target)){
				b=a.currentTarget
			}else{
				b=a.target
			}
		}else{
			b=a.srcElement
		}
		
		return(b.id)
	}
	
	return("")
}




function fwStopEventPropagation(a){
	if(!a){
		a=window.event
	}
	
	if(a){
		a.cancelBubble=true;
		
		if(a.stopPropagation){
			a.stopPropagation()
		}
	}
}




function fwHasElementClassName(c,a){
	if(!c||!c.className||!c.className.length||!a||!a.length){
		return(false)
	}
	
	var b=" "+c.className+" ";
	
	return(b.indexOf(" "+a+" ")!=-1)
}




function fwGetElementsByClassName(h,d){
	var b=h.getElementsByTagName("*");
	
	if(!b){
		return(null)
	}
	
	var a=new Array();
	var c=0;
	var g=0;
	
	for(c=0;c<b.length;c++){
		var f=" "+b[c].className+" ";
		
		if(f.indexOf(" "+d+" ")!=-1){
			a[g++]=b[c]
		}
		
	}
	
	if(a.length){
	
		return(a)
	}
	
	return(null)
}




function fwGetElementByClassName(f,c){
	var a=f.getElementsByTagName("*");
	
	if(!a){
		return(null)
	}
	
	var b=0;
	
	for(b=0;b<a.length;b++){
		var d=" "+a[b].className+" ";
		
		if(d.indexOf(" "+c+" ")!=-1){
			return(a[b])
		}
	}
	
	return(null)
}




function fwGetTopParent(){
	if(parent.frames[0]){
		return(parent)
	}
	
	return(window)
}


function fwGetOperatingWindow(){
	var a=null;
	
	if(parent.frames[0]&&g_settings.menuMainFrameName){
		
		if(g_browser.isExplorer){
		
			a=parent.frames[g_settings.menuMainFrameName].document.body
		}else{
		
			a=parent.frames[g_settings.menuMainFrameName]
		}
	}else{
	
		if(g_browser.isExplorer){
			
			a=fwGetTopParent().document.body
		}else{
		
			a=fwGetTopParent()
		}
	}
	
	return(a)
}




function fwGetAbsoluteTop(b){

	var d=document.getElementById(b);
	var a=d.offsetTop;
	
	while(d.offsetParent!=null){
		var c=d.offsetParent;
		a+=c.offsetTop;
		d=c
	}
	
	if(g_browser.isSafari){
	
		a=a-12
	}
	
	return(a)
}




function fwGetAbsoluteTopWithScrollOffset(a){
	if(g_browser.isExplorer||g_browser.isFireFox){
		
		return parseInt(document.body.scrollTop)+parseInt(fwGetAbsoluteTop(a))
	}else{
	
		return parseInt(window.pageYOffset)+parseInt(fwGetAbsoluteTop(a))
	}
}




function fwGetAbsoluteLeft(b){

	var d=document.getElementById(b);
	var a=d.offsetLeft;
	
	while(d.offsetParent!=null){
		var c=d.offsetParent;
		a+=c.offsetLeft;
		d=c
	}
	
	if(g_browser.isExplorer){
		return(a-document.body.scrollLeft)
	}
	
	return(a)
}




function fwGetAbsoluteLeftWithScrollOffset(a){

	if(g_browser.isExplorer||g_browser.isFireFox){
	
		return parseInt(document.body.scrollLeft)+parseInt(fwGetAbsoluteLeft(a))
	}else{
	
		return parseInt(window.pageXOffset)+parseInt(fwGetAbsoluteLeft(a))
	}
}




function fwTabStrip(f,a,b){

	fwDebugPrint("fwTabStrip("+f+", "+a+", "+b+")");
	var c=0;
	var d=document.getElementById(f+"_tb"+c);
	
	while(d){
		var h=document.getElementById(f+"_pn"+c);
		
		if(!h){
		
			return
		}
		
		if(c==a&&h.style.display=="none"){
			
			d.className=d.getAttribute("scss");
			h.style.visibility="visible";
			h.style.display="block";
			
			var g=document.getElementById(b);
			
			if(g){
				
				fwDebugPrint("Storing index of current strip: "+c);
				g.value=c
			}else{
			
				fwDebugPrint("Cannot store index of current strip.")
			}
		}
		
		if(c!=a&&h.style.display!="none"){
		
			d.className=d.getAttribute("uscss");
			h.style.visibility="hidden";
			h.style.display="none"
		}
		
		c++;
		
		d=document.getElementById(f+"_tb"+c)
	}
}




function fwStringReplaceAll(b,c,d){

	var a=d.indexOf(b);
	
	while(a!=-1){
		
		d=d.replace(b,c);
		a=d.indexOf(b)
	}
	
	return(d)
}





function fwNavigate(navUrl){

	if(!navUrl||navUrl==""){
	
		return
	}
	
	navUrl=fwStringReplaceAll("&amp;","&",navUrl);
	
	if(navUrl.indexOf("javascript:")!=-1){
		
		eval(navUrl);
		return
	}
	
	window.location.href=navUrl
}




function fwNavigateWithTarget(navUrl,target){
	
	if(!navUrl||navUrl==""){
	
		return
	}
	
	navUrl=fwStringReplaceAll("&amp;","&",navUrl);
	
	if(navUrl.indexOf("javascript:")!=-1){
	
		eval(navUrl);
		
		return
	}
	
	if(!target||target==""){
	
		fwNavigate(navUrl);
		
		return
	}
	
	if(target=="_blank"){
	
		var windowFeatures="dependent = 0, menubar = 1 , scrollbars = 1, location = 1, status = 1, titlebar = 1, toolbar = 1, resizable = 1";
		wnd=window.open(navUrl,target,windowFeatures);
		wnd.focus();
		
		return
	}
	
	var targetWindow;
	
	if(parent.frames[0]){
	
		if(parent.frames[target]){
		
			targetWindow=parent.frames[target]
		}else{
		
			targetWindow=parent.frames[0]
		}
	}else{
	
		targetWindow=window
		
	}
	
	targetWindow.location.href=navUrl
}




function fwPostAction(b,d){

	fwDebugPrint("fwPostAction("+b.toString()+", "+d+")");
	
	if(!b||!b.length){fwDebugPrint('Incorrect object "postData": '+b);
	
		return
	}
	
	if(b.length==0||b.length%2!=0){fwDebugPrint("Incorrect size of name/value pairs ("+b.length+").");
	
		return
	}
	
	var c=document.getElementById(d);
	
	if(!c){
	
		fwDebugPrint("Form not found: "+d);
	
		return
	}
	
	var a=0;
	
	for(a=0;a<b.length;a+=2){
	
		if(!fwAdminSetNameValue(b[a],b[a+1])){
		
			var f=fwCreateNewHiddenInput(b[a],b[a+1]);
			
			if(!f){
			
				return
			}
			
			c.appendChild(f)
		}
	}
	
	c.submit()
}




function fwSubmit(b){

	fwDebugPrint("fwSubmit("+b+")");
	var a=document.getElementById(b);
	
	if(!a){fwDebugPrint("Form not found: "+b);
	
		return
	}
	
	a.submit()
}





function fwAdminSetNameValue(a,c){

	fwDebugPrint("fwAdminSetNameValue(name: "+a+", value: "+c+")");
	var b=document.getElementById(a);
	
	if(!b){
		fwDebugPrint("Element not found: "+a+".");
		
		return(false)
	}
	
	b.value=c;
	
	return(true)
}



function fwCreateNewHiddenInput(a,c){
	
	fwDebugPrint("fwCreateHiddenInput(name: "+a+", value: "+c+")");
	var b=document.createElement("input");
	
	if(!b){
		fwDebugPrint("Cannot create element: "+a);
		
		return(null)
	}
	
	b.type="hidden";
	b.id=a;
	b.name=a;
	b.value=c;return(b)
}




function fwGetQueryStringParameters(){

	var c=new Array();
	var f=window.location.search.substring(1);
	var d=f.split("&");
	var a=0;
	
	for(a=0;a<d.length;a++){
		
		var h=d[a].indexOf("=");
		
		if(h>0){
			var b=d[a].substring(0,h);
			var g=d[a].substring(h+1);
			c[b]=g
		}
	}
	
	return(c)
}




function fwEnableDisableByCheckbox(f,b,d){
	fwDebugPrint("fwEnableDisableByCheckbox: "+f+", "+b+", "+d);
	
	var g=document.getElementById(f);
	
	if(!g){fwDebugPrint("Checkbox not found: "+f);
	
		return
	}
	
	if(b.length==0&&d.length==0){
	
		fwDebugPrint("No controls to enable/disable.");
		
		return
	}
	
	var a=0;
	
	for(a=0;a<b.length;a++){
	
		var c=document.getElementById(b[a]);
		
		if(!c){
			
			fwDebugPrint("Control not found to enable: "+b[a])
		}else{
			c.disabled=!g.checked
		}
	}
	
	a=0;
	
	for(a=0;a<d.length;a++){
	
		var c=document.getElementById(d[a]);
		
		if(!c){
		
			fwDebugPrint("Control not found to disable: "+d[a])
		}else{
			c.disabled=g.checked
		}
	}
}






function fwShowHideByCheckbox(f,c,a){

	fwDebugPrint("fwShowHideByCheckbox: "+f+", "+c+", "+a);
	
	var g=document.getElementById(f);
	
	if(!g){
		fwDebugPrint("Checkbox not found: "+f);
		
		return
	}
	
	if(!c){
		c=new Array()
	}
	
	if(!a){
	
		a=new Array()
	}
	
	if(c.length==0&&a.length==0){
	
		fwDebugPrint("No controls to show/hide.");
		
		return
	}
	
	var b=0;
	
	for(b=0;b<c.length;b++){
	
		var d=document.getElementById(c[b]);
		
		if(!d){
			
			fwDebugPrint("Control not found to show: "+c[b])
		}else{
			
			d.style.visibility="visible";
			d.style.display="block"
		}
	}
	
	b=0;
	
	for(b=0;b<a.length;b++){
	
		var d=document.getElementById(a[b]);
		
		if(!d){
		
			fwDebugPrint("Control not found to hide: "+a[b])
		}else{
		
			d.style.visibility="hidden";
			d.style.display="none"
		}
	}
}






function fwSelectAllCheckboxes(b){

	fwDebugPrint("fwSelectAllCheckboxes("+b+")");
	
	var d=document.getElementById(b);
	
	if(!d){
	
		fwDebugPrint("fwSelectAllCheckboxes: Main checkbox not found.");
		
		return
	}
	
	var a=1;
	var c=document.getElementById(b+"_"+a++);
	
	while(c){
		c.checked=d.checked;c=document.getElementById(b+"_"+a++)
	}
}





function fwSelect_GetItem(g,h,f){

	fwDebugPrint("fwSelect_GetItem("+g.id+", "+h+", "+f+")");
	
	if(!g){
	
		fwDebugPrint("fwSelect_GetItem: Invalid list control.");
		
		return(null)
	}
	
	var d=null;
	
	if(h){
	
		d=h.toLowerCase()
	}
	
	var b=null;
	
	if(f){
	
		b=f.toLowerCase()
	}
	
	var a=0;
	
	for(a=0;a<g.length&&g.options[a];a++){
	
		if(d){
		
			var c=g.options[a].text.toLowerCase();
			
			if(d==c){
			
				fwDebugPrint("fwSelect_GetItem: Item found by text.");
				
				return(g.options[a])
			}
		}
		
		if(b){
		
			var c=g.options[a].value.toLowerCase();
			
			if(b==c){
			
				fwDebugPrint("fwSelect_GetItem: Item found by value.");
				
				return(g.options[a])
			}
		}
	}
	
	fwDebugPrint("fwSelect_GetItem: Item not found.");
	
	return(null)
}




function fwSelect_GetItemIx(g,h,f){

	fwDebugPrint("fwSelect_GetItemIx("+g.id+", "+h+", "+f+")");
	
	if(!g){
	
		fwDebugPrint("fwSelect_GetItemIx: Invalid list control.");
		
		return(-1)
	}
	
	var d=null;
	
	if(h){
	
		d=h.toLowerCase()
	}
	
	var b=null;
	
	if(f){
	
		b=f.toLowerCase()
	}
	
	var a=0;
	
	for(a=0;a<g.length&&g.options[a];a++){
	
		if(d){var c=g.options[a].text.toLowerCase();
		
			if(d==c){
		
				fwDebugPrint("fwSelect_GetItemIx: Item found by text.");
		
				return(a)
			}
		}
		
		if(b){
		
			var c=g.options[a].value.toLowerCase();
			
			if(b==c){
			
				fwDebugPrint("fwSelect_GetItemIx: Item found by value.");
				
				return(a)
			}
		}
	}
	
	fwDebugPrint("fwSelect_GetItemIx: Item not found.");
	
	return(-1)
}




function fwSelect_ItemExists(a,d,c){

	fwDebugPrint("fwSelect_ItemExists("+a+", "+d+", "+c+")");
	
	var b=document.getElementById(a);
	
	if(!b){
	
		fwDebugPrint("fwSelect_ItemExists: List control not found.");
		
		return(false)
	}
	
	if(fwSelect_GetItem(b,d,c)){
	
		fwDebugPrint("fwSelect_ItemExists: Item exists.");
		
		return(true)
	}
	
	fwDebugPrint("fwSelect_ItemExists: Item does not exist.");
	
	return(false)
}





function fwSelect_DeleteSelected(c,f){

	fwDebugPrint("fwSelect_DeleteSelected("+c+", "+f+")");
	var d=document.getElementById(c);
	
	if(!d){
	
		fwDebugPrint("fwSelect_DeleteSelected: List control not found.");
		
		return(false)
	}
	
	var b=false;
	var a=0;
	
	for(a=d.length-1;a>=0;a--){
	
		if(d.options[a].selected){
		
			d.remove(a);
			b=true;
			
			if(!f){
				break
			}
		}
	}
	
	if(b){
	
		fwDebugPrint("fwSelect_DeleteSelected: One ore more item(s) deleted.")
	}else{
	
		fwDebugPrint("fwSelect_DeleteSelected: No Item(s) deleted.")
	}
	
	return(b)
}




function fwSelect_GetSelectedItem(b){

	fwDebugPrint("fwSelect_GetSelectedItem("+b+")");
	
	var c=document.getElementById(b);
	
	if(!c){
	
		fwDebugPrint("fwSelect_GetSelectedItem: List control not found.");
		
		return(null)
	}
	
	var a=0;
	
	for(a=c.length-1;a>=0;a--){
	
		if(c.options[a].selected){
		
			fwDebugPrint("fwSelect_GetSelectedItem: Returning selected item.");
			
			return(c.options[a])
		}
	}
	
	fwDebugPrint("fwSelect_GetSelectedItem: No Item selected.");
	
	return(null)
}




function fwSelect_DeleteItem(b,f,d){

	fwDebugPrint("fwSelect_DeleteItem("+b+", "+f+", "+d+")");
	
	var c=document.getElementById(b);
	
	if(!c){
		fwDebugPrint("fwSelect_DeleteItem: List control not found.");
		
		return(false)
	}
	
	var a=fwSelect_GetItemIx(c,f,d);
	
	if(a!=-1){
	
		c.remove(a);
		fwDebugPrint("fwSelect_DeleteItem: Item deleted.");
		
		return(true)
	}
	
	fwDebugPrint("fwSelect_DeleteItem: Item not deleted.");
	
	return(false)
}




function fwSelect_AddItem(b,g,f){

	fwDebugPrint("fwSelect_AddItem("+b+", "+g+", "+f+")");
	
	if(g==""||f==""){
	
		fwDebugPrint("fwSelect_AddItem: Cannot add empty items.");
		
		return(false)
	}
	
	var d=document.getElementById(b);
	
	if(!d){
	
		fwDebugPrint("fwSelect_AddItem: List control not found.");
		
		return(false)
	}
	
	var c=document.createElement("option");
	
	if(!c){
	
		fwDebugPrint("fwSelect_AddItem: Cannot create new item.");
		
		return(false)
	}
	
	c.text=g;
	
	c.value=f;
	
	try{
		d.add(c,null)
	}catch(a){
	
		d.add(c)
	}
	
	fwDebugPrint("fwSelect_AddItem: New item added.");
	
	return(true)
	
}





function fwSelect_ReplaceItem(c,a,b,g,h){

	fwDebugPrint("fwSelect_ReplaceItem("+c+", "+a+", "+b+", "+g+", "+h+")");
	
	if(g==""&&h==""){
	
		fwDebugPrint("fwSelect_ReplaceItem: Cannot replace with empty parameters.");
		
		return(false)
			
	}
	
	var f=document.getElementById(c);
	
	if(!f){
	
		fwDebugPrint("fwSelect_ReplaceItem: List control not found.");
		
		return(false)
	}
	
	var d=fwSelect_GetItem(f,a,b);
	
	if(!d){
	
		fwDebugPrint("fwSelect_ReplaceItem: Item not replaced.");
		
		return(false)
	}
	
	if(g){
	
		d.text=g
	}
	
	if(h){
	
		d.value=h
	}
	
	fwDebugPrint("fwSelect_ReplaceItem: Item replaced.");
	
	return(true)
}




function fwPSL_UpdatePreviewSize(b,c,a){

	var d=fwSelect_GetSelectedItem(b);
	
	if(!d){
	
		fwDebugPrint("fwPSL_UpdatePreviewSize: No selected item retrieved.");
		
		return
	}
	
	fwDebugPrint("fwPSL_UpdatePreviewSize: New selected item is: "+d.value);
	
	a+="&amp;"+c+"="+d.value;fwNavigate(a)
}




function fwSharedAlbumRoleChanger(a,d,c){

	var b=fwSelect_GetSelectedItem(a);
	
	if(!b){
	
		fwDebugPrint("fwSharedAlbumRoleChanger: No selected item retrieved.");
		
		return
	}
	
	fwDebugPrint("fwSharedAlbumRoleChanger: New selected item is: "+b.value);
	
	if(!c){
	
		fwDebugPrint("fwSharedAlbumRoleChanger: No parameter array passed in.");
		
		return
	}
	
	c[1]=b.value;fwPostAction(c,d)
}





function fwDropDown_Expand(c){

	fwDebugPrint("fwDropDown_Expand("+c+")");

	var a=document.getElementById(c);
	
	if(!a){
	
		fwDebugPrint("fwDropDown_Expand: Drop down not found.");
		
		return
	}
	
	var b=fwGetElementByClassName(a,"fwDropDown_Items");
	
	if(!b){
	
		fwDebugPrint("fwDropDown_Expand: Items block not found.");
	
		return
	}
	
	b.style.position="absolute";
	b.style.left=parseInt(a.offsetLeft)+"px";
	b.style.width=parseInt(a.offsetWidth)+"px";
	
	if(b.style.visibility=="visible"){
	
		fwDebugPrint("fwDropDown_Expand: Hiding items.");
		b.style.visibility="hidden";
		b.style.display="none"
	}else{
	
		fwDebugPrint("fwDropDown_Expand: Showing items.");
		b.style.visibility="visible";
		b.style.display="block"
	}
}






function fwDropDown_Select(c,g,f){

	fwDebugPrint("fwDropDown_Select("+c+", "+g+")");
	var b=document.getElementById(g+"_sel");
	
	if(!b){
	
		fwDebugPrint("fwDropDown_Select: Selection not found.");
		return
	}
	
	b.innerHTML=c.innerHTML;
	var a=document.getElementById(f);
	
	if(!a){
	
		fwDebugPrint("fwDropDown_Select: Item data not found.");
		
		return
	}
	
	var d=document.getElementById(g+"_inp");
	
	if(!d){
	
		fwDebugPrint("fwDropDown_Select: Input control not found.");
		
		return
	}
	
	d.value=a.innerHTML;
	fwDropDown_Expand(g)
}




function fwShowMessageBox(){

	fwDebugPrint("fwShowMessageBox()");
	var a=document.getElementById("fwMessageBox");
	
	if(!a){
	
		fwDebugPrint("fwShowMessageBox: No message box on this page.");
		
		return
	}
	
	fwDebugPrint("fwShowMessageBox: Displaying message box.");
	
	a.style.display="block";
	a.style.visibility="visible";
	fwPositionMessageBox();
	fwAddEvent(window,"scroll",fwPositionMessageBox,false);
	fwAddEvent(window,"resize",fwPositionMessageBox,false)
}


function fwHideMessageBox(){

	fwDebugPrint("fwHideMessageBox()");
	
	var a=document.getElementById("fwMessageBox");
	
	if(!a){
	
		fwDebugPrint("fwHideMessageBox: No message box on this page.");
		
		return
	}
	
	fwDebugPrint("fwHideMessageBox: Hiding message box.");
	a.style.visibility="hidden";
	a.style.display="none"
}




function fwPositionMessageBox(){

	fwDebugPrint("fwPositionMessageBox()");
	
	var a=document.getElementById("fwMessageBox");
	
	if(!a){
	
		fwDebugPrint("fwPositionMessageBox: No message box on this page.");
		
		return
	}
	
	fwDebugPrint("fwPositionMessageBox: Positioning message box.");
	
	if(a.style.visibility=="hidden"){
	
		return
	}
	
	var c=0;
	var b=0;
	
	if(g_browser.isFirefox||g_browser.isSafari){
	
		c=parseInt(window.innerWidth)/2-parseInt(a.offsetWidth)/2+parseInt(window.pageXOffset);
		b=parseInt(window.innerHeight)/2-parseInt(a.offsetHeight)/2+parseInt(window.pageYOffset)
	}else{
	
		c=parseInt(document.body.clientWidth)/2-parseInt(a.offsetWidth)/2+parseInt(document.body.scrollLeft);
		b=parseInt(document.body.clientHeight)/2-parseInt(a.offsetHeight)/2+parseInt(document.body.scrollTop)
	}
	
	a.style.left=c+"px";
	a.style.top=b+"px";
	
	fwDebugPrint("fwPositionMessageBox: Left = "+c+", Top = "+b)
}




function fwConfirmBeforePost(c,a,b){

	fwDebugPrint("fwAdminDeleteObject");
	
	if(!c||c==""){
	
		fwPostAction(a,b);
		
		return
	}
	
	if(confirm(c)){
	
		fwPostAction(a,b)
	}else{
	
		fwDebugPrint("Delete canceled.")
	}
}




var globalTests=new Array();
var markingForeColor="white";
var markingBackColor="#FD7303";
var testTypes={FW_EMAIL:1,FW_POSITIVE_INTEGER:2,FW_POSITIVE_DOUBLE:3,FW_TEXT_ALL:4,FW_TEXT_NO_NUMBERS:5,FW_REGULAREXPRESSION:6,FW_CHECK:7,FW_FILENAME:8};


function fwTestEntry(k,d,b,j,h,i,c,f,a,g){

	this.formId=k;
	this.element=d;
	this.testType=b;
	this.regExp=j;
	this.required=h;
	this.minChars=i;
	this.maxChars=c;
	this.minRange=f;
	this.maxRange=a;
	this.errorMessage=g;
	this.markingElement=null;
	this.errorCondition=""
}




function fwSetValidator(l,f,c,k,i,j,d,g,b,h){

	var a=new fwTestEntry(l,f,c,k,i,j,d,g,b,h);
	globalTests[globalTests.length]=a
}




function fwTrimEdges(a){

	return fwLTrim(fwRTrim(a))
}




function fwLTrim(a){

	if(a){
	
		a.value=a.value.replace(/^\s+/g,"");
		
		return a
	}
}




function fwRTrim(a){

	if(a){
	
		a.value=a.value.replace(/\s+$/g,"");
	
		return a
	}
}




function fwMarkError(a){

	if(a){
	
		a.style.color=markingForeColor;
		a.style.background=markingBackColor
	}
}




function fwSetErrorMessage(a,b){

	a.errorCondition=b;
	
	if(a.errorMessage.length==0){
	
		a.errorMessage=a.element.id+": "+a.errorCondition
	}
	
	fwMarkError(a.element)
}




function fwIsEmpty(a){

	if(a.element){
	
		return a.element.value.length==0
	}
	
	return true
}




function fwIsRequiredOk(a){

	if(a.required==false&&a.element.value.length==0){
	
		return true
	}
	
	fwTrimEdges(a.element);
	
	if(fwIsEmpty(a)){
	
		if(a.required==true){
		
			fwSetErrorMessage(a,"Required field is empty")
		}else{
		
			fwSetErrorMessage(a,"Optional field cannot consist of spaces only")
		}
		
		return false	
	}
	
	return true
}




function fwIsLengthCheckOk(a){

	if(a.minChars==0&&a.maxChars==0){
	
		return true
	}
	
	if(!a.element){
	
		return true
	}
	
	if(a.minChars>a.maxChars){
	
		fwSetErrorMessage(a,"Consistency error: Minimum number of characters cannot be greater than maximum number of characters")
	}
	
	if(a.required==false&&fwIsEmpty(a)){
	
		return true
	}
	
	if(a.element.value.lenght<a.minChars){
	
		fwSetErrorMessage(a,"The minimum number of characters for this field is "+a.minChars);
		
		return false
	}
	
	if(a.element.value.length>a.maxChars){
	
		fwSetErrorMessage(a,"The maximum number of characters for this field was exceeded");
		
		return false
	}
	
	return true
}




function fwValidateEmail(d){

	if(fwIsEmpty(d)&&d.required==false){
	
		return true
	}
	
	var c=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var a=d.element.value.split(";");
	
	for(var b=0;b<a.length;b++){
	
		if(a[b].charAt(0)=="."){
		
			fwSetErrorMessage(d,"One or more illegal email addresses found");
			
			return false
		}
		
		if(!c.test(a[b])){
		
			fwSetErrorMessage(d,"One or more illegal email addresses found");
			
			return false
		}
	}
	
	return true
}




function fwValidateCheckBox(a){

	if(!a.element.checked&&a.required==false){
	
		return true
	}
	
	if(!a.element.checked&&a.required==true){
	
		fwSetErrorMessage(a,"Please click the checkbox");
		
		return false
	}
	
	return true
}




function fwValidateRadioBox(a){

	return true
}




function fwValidateRegularExpression(a){
	if(!a.required&&a.element.value.length==0){
	
		return true
	}
	
	if(a.regExp.value.length==0){
	
		fwSetErrorMessage(a,"Regular expression chosen, but not given");
		
		return false
	}
	
	if(!a.regExp.test(a.element.value)){
	
		fwSetErrorMessage(a,"The data contained in the field are invalid");
		
		return false
	}
	
	return true
}




function fwIsNumeric(a){

	if(!a.required&&a.element.value.length==0){
		
		return true
	}
	
	if(isNaN(a.element.value)){
	
		return false
	}
	
	return true
}




function fwValidateAsAnyNumber(currentTestObject){

	if(!currentTestObject.required&&currentTestObject.element.value.length==0){
	
		return true
	}
	
	if(!fwIsNumeric(currentTestObject)){
	
		fwSetErrorMessage(currentTestObject,"This field requires a number");
		
		return false
	}
	
	if(currentTestObject.minRange==-1&&currentTestObject.maxRange==-1){
	
		return true
	}
	
	if(eval(currentTestObject.minRange>currentTestObject.maxRange)){
	
		fwSetErrorMessage(currentTestObject,"Code error: Maximum value is set to be lower than minimum value in range");
		
		return false
	}
	
	if(eval(currentTestObject.element.value<currentTestObject.minRange)){
	
		fwSetErrorMessage(currentTestObject,"Value given is lower than minium allowed");
		
		return false
	}
	
	if(eval(currentTestObject.element.value>currentTestObject.maxRange)){
	
		fwSetErrorMessage(currentTestObject,"Value given is higher than the maximum allowed");
		
		return false
	}
	
	return true
}




function fwValidateAsAnyPositiveNumber(currentTestObject){

	if(!fwValidateAsAnyNumber(currentTestObject)){
	
		return false
	}
	
	if(eval(currentTestObject.element.value<0)){
	
		fwSetErrorMessage(currentTestObject,"Only positive numbers allowed");
		
		return false
	}
	
	return true
}




function fwValidateAnyInteger(currentTestObject){

	if(!fwValidateAsAnyNumber(currentTestObject)){
	
		return false
	}
	
	var floater=parseFloat(currentTestObject.element.value);
	var integer=parseInt(currentTestObject.element.value);
	
	if(eval(Math.abs(floater)-Math.abs(integer))!=0||currentTestObject.element.value.indexOf(".")>=0){
	
		fwSetErrorMessage(currentTestObject,"Only whole numbers are allowed here");
		
		return false
	}
	
	return true
}




function fwValidateAnyDouble(a){

	if(!fwValidateAsAnyNumber(a)){
	
		return false
	}
	
	if(a.element.value.indexOf(".")==-1){
	
		a.element.value+=".0"
	}
	
	return true
}




function fwValidatePositiveInt(a){

	if(!fwValidateAnyInteger(a)){
	
		return false
	}
	
	if(!fwValidateAsAnyPositiveNumber(a)){
	
		return false
	}
	
	return true
}




function fwValidatePositiveDbl(a){

	if(!fwValidateAsAnyPositiveNumber(a)){
		return false
	}
	
	if(a.element.value.indexOf(".")==-1){
	
		a.element.value+=".0"
	}
	
	return true
}




function fwValidateAllText(a){
	return true
}




function fwValidateFileName(a){

	if(!a.required&&a.element.value.length==0){
		return true
	}
	
	return true
}




function fwValidateAll(theForm){
	
	var errorMessages=new Array();
	var noError=true;
	var firstFocus=false;
	var focusElement=-1;
	
	for(var i=0;i<globalTests.length;i++){
	
		if(globalTests[i].formId.id==theForm.id){
		
			if(fwIsRequiredOk(globalTests[i])){
			
				if(fwIsLengthCheckOk(globalTests[i])){
				
					switch(globalTests[i].testType){
					
						case testTypes.FW_TEXT_ALL:noError=fwValidateAllText(globalTests[i]);
						break;
						
						case testTypes.FW_EMAIL:noError=fwValidateEmail(globalTests[i]);
						break;
						
						case testTypes.FW_CHECK:noError=fwValidateCheckBox(globalTests[i]);
						break;
						
						case testTypes.FW_RADIO:noError=fwValidateRadioBox(globalTests[i]);
						break;
						
						case testTypes.FW_REGULAREXPRESSION:noError=fwValidateRegExp(globalTests[i]);
						break;
						
						case testTypes.FW_INTEGER:noError=fwValidateAnyInteger(globalTests[i]);
						break;
						
						case testTypes.FW_DOUBLE:noError=fwValidateAnyDouble(globalTests[i]);
						break;
						
						case testTypes.FW_POSITIVE_INTEGER:noError=fwValidatePositiveInt(globalTests[i]);
						break;
						
						case testTypes.FW_POSITIVE_DOUBLE:noError=fwValidatePositiveDbl(globalTests[i]);
						
						break;
						case testTypes.FW_FILENAME:noError=fwValidateFileName(globalTests[i]);
						
						break
					}
				}else{
				
					noError=false
				}
			}else{
			
				noError=false
			}
			
			if(noError==false){
			
				errorMessages[errorMessages.length]=globalTests[i].errorMessage;
				
				noError=true;
				
				if(focusElement==-1){
				
					focusElement=i
				}
				
				fwMarkError(globalTests[i].markingElement)
			}
		}
	}
	
	if(errorMessages.length>=1){
	
		var message="Errors found: \n\n";
		
		for(var i=0;i<errorMessages.length;i++){
		
			message+=eval(i+1)+": "+errorMessages[i]+"\n"}alert(message);
			
			if(focusElement>=0){
			
				globalTests[focusElement].element.focus()
			}
			
			return false
		}
	return true
}




function fwIsWhiteSpace(a){

	if(a==String.fromCharCode(32)){
	
		return(true)
	}
	
	if(a==String.fromCharCode(9)){
	
		return(true)
	}
	
	if(a==String.fromCharCode(10)){
	
		return(true)
	}
	
	if(a==String.fromCharCode(13)){
	
		return(true)
	}
	
	return(false)
}




function fwTrim(a){

	if(!a||!a.length){
	
		return("")
	}
	
	if(a.length==0){
	
		return("")
	}
	
	a=fwRightTrim(a);
	a=fwLeftTrim(a);
	
	return(a)
}




function fwRightTrim(b){

	if(!b||!b.length){
	
		return("")
	}
	
	if(b.length==0){
	
		return("")
	}
	
	var a=b.length-1;
	
	while(a>=0&&fwIsWhiteSpace(b.charAt(a))){
	
		a--
	}
	
	if(a>0){
	
		return(b.substring(0,a+1))
	}
	
	return("")
}




function fwLeftTrim(b){

	if(!b||!b.length){
	
		return("")
	}
	
	if(b.length==0){
	
		return("")
	}
	
	var a=0;
	
	while(a<b.length&&fwIsWhiteSpace(b.charAt(a))){
	
		a++
	}
	
	if(a<b.length){
	
		return(b.substring(a,b.length))
	}
	
	return("")
}




var li=0;


function archiveInfo(b,a){

	this.ListIndex=b;
	this.IsIndexed=a
}
	
	



var g_indexedArchives=new Array();

function updateOption(d){

	var b=g_indexedArchives[d];
	var g=document.getElementById("idFwSearch");
	var c=document.getElementById("idFwLabelSearch");
	var a=document.getElementById("idFwSubmit");
	var f=document.getElementById("idFwSearchTitle");
	
	if(b&&g&&c&&a&&f){
	
		if(b.IsIndexed){
	
			g.style.display="inline";
			c.style.display="inline";
		
			if(a.getAttribute("searchtext")){
		
				a.value=a.getAttribute("searchtext")
			}else{
		
				a.value="Search"
			}
		}else{
	
			g.style.display="none";
			c.style.display="none";
		
			if(a.getAttribute("oktext")){
		
				a.value=a.getAttribute("oktext")
			}else{
		
				a.value="Ok"
			}
		}
	}
}





function fwRating_EditRating(a,b){

	fwStopEventPropagation(a);
	fwNavigate(b)
}




function fwRating_ShowEdit(c,d){
	fwStopEventPropagation(c);
	
	var b=document.getElementById(d+"_display");
	var a=document.getElementById(d+"_edit");
	
	if(b&&a){
	
		b.style.display="none";
		b.style.visibility="hidden";
		a.style.display="block";
		a.style.visibility="visible"
	}
}




function fwRating_HideEdit(c,d){

	fwStopEventPropagation(c);
	var b=document.getElementById(d+"_display");
	var a=document.getElementById(d+"_edit");
	
	if(b&&a){
	
		b.style.display="block";
		b.style.visibility="visible";
		a.style.display="none";
		a.style.visibility="hidden"
	}
};




function ConfirmMessage(m){

	return(confirm(m));
}
