function Dim() {
	var id = 'dimmed';
	if (!$i(id)) {
		var d = document.createElement('div');
		d.setAttribute('id', id);
		document.body.appendChild(d);
	}
	Show($i('dimmed'));
	$i('dimmed').style.width = screen.availWidth + 'px';
	$i('dimmed').style.height = screen.availHeight + 'px';
	return $i(id);	
}
function UnDim() {
	Hide($i('dimmed'));		
}

/* --- */

function AddPhotoDialog(w) {
	Dim();	
	Show( $i('add_photo_dialog') );
	$i('add_photo_dialog').style.left = (screen.availWidth / 2) - ($i('add_photo_dialog').clientWidth / 2) + 'px';
	if (w) {
		Show( $i('add_photo_dialog_saved') );
		Hide( $i('add_photo_dialog_form') );
	} else {
		Hide( $i('add_photo_dialog_saved') );
		Show( $i('add_photo_dialog_form') );
	}
}
function HidePhotoDialog() {
	UnDim();
	Hide( $i('add_photo_dialog') );
}
function UploadImage() {
	if ($i('title').value.length < 1) {
		alert('Please enter a title');
		return false;
	}
	if ($i('image').value.length < 1) {
		alert('You must select an image');
		return false;
	}
	
	$i('bb_form').submit();	
}

/* --- */

function CheckRequired(formId) { if (!formId) { formId = 'form'; }
	var error = false;
	requiredFields = getElementsByClassName(document.getElementById(formId), 'div', 'required');
	for(i=0; i<requiredFields.length; i++) {
		if (requiredFields[i] && requiredFields[i].style.display != 'none') {
			inputTypes = new Array('input', 'select', 'textarea');
			for(j=0; j<inputTypes.length; j++) {
				inputs = requiredFields[i].getElementsByTagName(inputTypes[j]);
				for(c=0; c<inputs.length; c++) {
					if (inputs[c]) {
						if ((inputs[c].value == null || inputs[c].value.length == 0)) {
							error = true;
							inputs[c].className = 'requiredEmpty';
						} else {
							inputs[c].className = 'requiredOkay';
						}
					}
				}			
			}
		}
	}
	if (error) { alert('Please complete the required fields that are in red'); } else {
		document.getElementById(formId).submit();	
	}
}
function getElementsByClassName(oElm, strTagName, oClassNames){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var arrRegExpClassNames = new Array();
    if(typeof oClassNames == "object"){
        for(var i=0; i<oClassNames.length; i++){
            arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
        }
    }
    else{
        arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
    }
    var oElement;
    var bMatchesAll;
    for(var j=0; j<arrElements.length; j++){
        oElement = arrElements[j];
        bMatchesAll = true;
        for(var k=0; k<arrRegExpClassNames.length; k++){
            if(!arrRegExpClassNames[k].test(oElement.className)){
                bMatchesAll = false;
                break;                      
            }
        }
        if(bMatchesAll){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
};


/* --- */

function Show(obj) { if (obj) { obj.style.display = 'block'; } } 
function Hide(obj) { if (obj) { obj.style.display = 'none'; } }

/* --- */

function $i(id) { return document.getElementById(id); }

/* --- */

function Ajax() {}
Ajax.prototype = {
	
	GetXmlHttp : function () {
		{var ajax=null;try{ajax=new XMLHttpRequest();}
		catch(e){ajax=null;}
		try{if(!ajax)ajax=new ActiveXObject("Msxml2.XMLHTTP");}
		catch(e){ajax=null;}
		try{if(!ajax)ajax=new ActiveXObject("Microsoft.XMLHTTP");}
		catch(e){ajax=null;}
		return ajax;}
	},
	
	fire : function (uri, callback, parameters) {
		this.callback = callback;
		this.transport = this.GetXmlHttp();
		this.osc(this);
		this.transport.open("POST",uri,true);
		this.transport.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		this.transport.send(parameters);
	},
	
	osc : function (ajaxObj) {
		ajaxObj.transport.onreadystatechange = function() {
			try {
				switch(ajaxObj.transport.readyState) {
					case(4): ajaxObj.callback(ajaxObj.transport.responseText);
				}
			}
			catch( e ) { //server error
			}
		}	
	},
	 
	fireForm : function (id, callback) {
		if ($(id).getAttribute('enctype') == 'multipart/form-data') {
			alert('Use cProcess for file transfers');
		} else {
			this.fire( $(id).action, callback, this.formParse( id ) );		
		}
	},
	
	formParse : function (id) {
		str = '';
		ins = $(id).getElementsByTagName('input');
		for(i=0; i<ins.length; i++) {
			if(ins[i].type == 'checkbox'|'radio') {
				if (ins[i].checked) { str += ins[i].name + '=' + ins[i].value + '&'; }				
			} else {
				str += ins[i].name + '=' + ins[i].value + '&';
			}
		}
		ins = $(id).getElementsByTagName('textarea');
		for(i=0; i<ins.length; i++) {
			str += ins[i].name + '=' + ins[i].value + '&';
		}	
		ins = $(id).getElementsByTagName('select');
		for(i=0; i<ins.length; i++) {
			if (ins[i].getAttribute('multiple')) { 
				str += ins[i].name + '='
				for(j=0; j<ins[i].options.length; j++) {
					ins[i].options[j].value + '|';
				}
				str.substr(0,str.length-1);
				str += '&';
			} else {
				str += ins[i].name + '=' + ins[i].options[ins[i].selectedIndex].value + '&';
			}
		} 
		return str.substr(0,str.length-1);	
	}
	
}

var A = new Ajax();


/* --- */

sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);