// JavaScript Document
function hasClass (obj, className) {
	if (typeof obj == 'undefined' || obj==null || !RegExp) { return false; }
	
	var re = new RegExp("(^|\\s)" + className + "(\\s|$)");
	if (typeof(obj)=="string") { return re.test(obj); }
	else if (typeof(obj)=="object" && obj.className) { return re.test(obj.className); }
  return false;
}

function addClass(obj,cls) {
	if (!this.hasClass(obj,cls)) obj.className += " "+cls;
}

function removeClass(obj,cls) {
	if (hasClass(obj,cls)) {
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		obj.className=obj.className.replace(reg,' ');
	}
}


function rollover(){
	var obj = this.getElementsByTagName('p');
	var len = obj.length;

	for (var i=0; i < len; i++){
		if(hasClass(obj[i], "actions")) {
			obj[i].style.visibility = "visible";
			addClass(this, "rollover");
			break;
		}
	}
}

function rolloff(){
	var obj = this.getElementsByTagName('p');
	var len = obj.length;
	
	for (var i=0; i < len; i++){
		if(hasClass(obj[i], "actions")) {
			obj[i].style.visibility = "hidden";
			removeClass(this, "rollover");
			break;
		}
	}
}
//do on ready
function initList(el){
	var oUL= document.getElementById(el);
	var oLI = oUL.firstChild;
	while (oLI) {		
		oLI.onmouseover = rollover;
		oLI.onmouseout = rolloff;
		oLI = oLI.nextSibling;
	}
}
// ask
function del(rT){
	if(confirm("Are you sure you want to continue to delete this item?"))
		document.location = rT.href;
 return false;
}

// textbox value validator
function textboxValue(rT){
var value = trim(rT.value);
var name = rT.name;
	 switch(value){
		case "Please enter your name...":
		case "Please enter your Email Address...":
		case "Please enter your Home Address...":
		case "Enter your message...":
			rT.value = "";
	 }
	 rT.style.color = "#000000";
	 
	 if(value == ""){
		 switch(name){
			 case "name": rT.value = "Please enter your name..."; break;
			 case "email": rT.value = "Please enter your Email Address..."; break;
			 case "address": rT.value = "Please enter your Home Address..."; break;
			 case "message": rT.value = "Enter your message..."; break;
		 }		 
	 rT.style.color = "#999999";
	 }

}

// validates contact form
function validateContactForm(rT){
	var len = rT.elements.length;
	var elem = rT.elements;
	
	for (var i=0; i < (len-1); i++){
	var value = trim(elem[i].value);
	var name = elem[i].name;
	
	 if(trim(value) == ""){
		switch(name){
			case "name": alert("Please Enter your name"); break;
			case "email": alert("Please Enter your E-mail Address"); break;
			case "address": alert("Please Enter your Home Address"); break;
			case "message": alert("Please Enter your Message"); break;
			case "catchpa": alert("Please Enter the characters on the image."); break;
		}
		
	   elem[i].focus();
	   return false;
	}else{
		switch(name){
			case "name": 
				if(value == "Please enter your name...") {
					alert("Please Enter your name");
					elem[i].focus();
					return false;
				}
			break;
			case "email":
				if(value == "Please enter your Email Address...") {
					alert("Please Enter your E-mail Address");
					elem[i].focus();
					return false;
				}else{
					var bool = emailAddress(value);
					 if (!bool){
						alert("\"" + rT.elements[i].value + "\" is an invalid e-mail!");		
						rT.elements[i].focus();
						return false;
					 }
				}
			break;
			case "address":
				if(value == "Please enter your Home Address...") {
					alert("Please Enter your Home Address");
					elem[i].focus();
					return false;
				}
			break;
			case "message":
				if(value == "Please enter your Home Address...") {
					alert("Please Enter your Message"); 
					elem[i].focus();
					return false;
				}
			break;
		}					
	}
	}
 return true;
}

// trim string
function trim(str){
	return str.replace(/^\s+|\s+$/g,'');
}

// validate email address
function emailAddress(str) {
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
  if (!reg1.test(str) && reg2.test(str))
	return true;
//  alert("\"" + str + "\" is an invalid e-mail!"); // this is also optional
  return false;
}


