var getOpenPanels = new Array();
var supCon = new Array();
var formDiv = new Array();
var xmlHttp;

function closeDiv()
{
	document.getElementById(supCon[0]).style.display = "none";
}

function toggleSupCon(supConDiv)
{
	if(supCon.length > 0)
	{
		closeDiv();
	}
	supCon[0] = supConDiv;
	document.getElementById(supCon[0]).style.display = "block";
}

function showEditable(whichdiv, whichset) 
{
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp == null) 
	{
		alert ("Your browser doesn't support Javascript... upgrade already!");
		return;
	}
	getOpenPanels[0] = whichdiv;
	getOpenPanels[1] = whichset;
	document.getElementById(getOpenPanels[0]).style.display = "block";
	document.getElementById("cs1").style.display = "none";
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.open("GET",getOpenPanels[1],true);
	xmlHttp.send(null);
}

function getList(whichdiv, whichset, applyColor)
{
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp == null)
	{
		alert ("Your browser doesn't support Javascript... upgrade already!");
		return;
	}
	getOpenPanels[0] = whichdiv;
	getOpenPanels[1] = whichset;
	document.getElementById(getOpenPanels[0]).style.display = "block";
	document.getElementById(applyColor).style.color = "#618526";
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.open("GET",getOpenPanels[1],true);
	xmlHttp.send(null);
}

function stateChanged() 
{
	if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") 
	{
		document.getElementById(getOpenPanels[0]).innerHTML = xmlHttp.responseText;	
	}
}

function GetXmlHttpObject() 
{
	var xmlHttp = null;
	try 
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch (e) 
	{
		try 
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) 
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
return xmlHttp;
}

function showHide(c)
{
	formDiv[0] = c;
	if(formDiv[0] == "supplier" ||  formDiv[0] == "contractor" || formDiv[0] == "homeowner")
	{
		document.getElementById('supplier').style.display = "none";
		document.getElementById('contractor').style.display = "none";
		document.getElementById('homeowner').style.display = "none";
		document.getElementById(formDiv[0]).style.display = "block";
	}
	else
	{
		document.getElementById('supplier').style.display = "none";
		document.getElementById('contractor').style.display = "none";
		document.getElementById('homeowner').style.display = "none";
	}
}

function checkForDupe(varEmail, whichDiv)
{
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp == null)
	{
		alert ("Your browser doesn't support Javascript... upgrade already!");
		return;
	}
	getOpenPanels[0] = varEmail;
	getOpenPanels[1] = whichDiv;
	document.getElementById(getOpenPanels[1]).style.display = "block";
	var checkThis = varEmail
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.open("GET",getOpenPanels[1],true);
	xmlHttp.send(null);
}

function validateForm(addSupplier) 
{
	var firstName = addSupplier.firstName.value;
	var lastName = addSupplier.lastName.value;
	var emailAdd = addSupplier.emailAdd.value;
  	var phoneNum = addSupplier.phoneNum.value;
  	var add1 = addSupplier.add1.value;
	var city = addSupplier.city.value;
	var zip = addSupplier.zip.value;
	var coDesc1 = addSupplier.coDesc1.value;
	var siteLink1 = addSupplier.siteLink1.value;
	var googleLink1 = addSupplier.googleLink1.value;
	var coDesc2 = addSupplier.coDesc2.value;
	var siteLink2 = addSupplier.siteLink2.value;
	var googleLink2 = addSupplier.googleLink2.value;
	var licenseNum2 = addSupplier.licenseNum2.value;
	var username = addSupplier.username.value;
	var password = addSupplier.password.value;
	var password2 = addSupplier.password2.value;
  	var nameRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
  	var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
  	var phoneRegex = /^[0-9\-\(\)\ \.]{10,14}$/;
  	var descRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);
	var p1 = addSupplier.password2.value;
	
  	if(firstName == "") 
	{
    	inlineMsg('firstName','Your first name is required.',2);
    	return false;
  	}
  	if(lastName == "") 
	{
    	inlineMsg('lastName','Your last name is required.',2);
    	return false;
  	}
  	if(emailAdd == "") 
	{
    	inlineMsg('emailAdd','<strong>Error</strong><br />You must enter your email address.',2);
    	return false;
  	}
  	if(!emailAdd.match(emailRegex)) 
	{
    	inlineMsg('emailAdd','<strong>Error</strong><br />You have entered an invalid email address.',2);
    	return false;
  	}
    if(phoneNum == "") 
	{
    	inlineMsg('phoneNum','<strong>Error</strong><br />You must enter your phone number.',2);
    	return false;
  	}
  	if(!phoneNum.match(phoneRegex)) 
	{
    	inlineMsg('phoneNum','<strong>Error</strong><br />Please enter a valid 10 digit number, you may use periods, blank spaces or hyphens to seperate your digits.',2);
    	return false;
  	}
    if(add1 == "") 
	{
    	inlineMsg('add1','<strong>Error</strong><br />You must enter your address.',2);
    	return false;
  	}
    if(city == "") 
	{
    	inlineMsg('city','<strong>Error</strong><br />You must enter your city.',2);
    	return false;
  	}
    if(zip == "") 
	{
    	inlineMsg('zip','<strong>Error</strong><br />You must enter your zip code.',2);
    	return false;
  	}
    if(username == "") 
	{
    	inlineMsg('username','You must choose a username.',2);
    	return false;
  	}
    if(password == "") 
	{
    	inlineMsg('password','You must choose a password.',2);
    	return false;
  	}
    if(password2 == "") 
	{
    	inlineMsg('password2','You must retype your password.',2);
    	return false;
  	}
	if(password != p1)
	{
		inlineMsg('password2','<strong>Your passwords are not the same.</strong>',2);	
		return false;
	}
  	return false;
}

var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;

function inlineMsg(target,string,autohide) 
{
  	var msg;
  	var msgcontent;
  	if(!document.getElementById('msg')) 
	{
    	msg = document.createElement('div');
    	msg.id = 'msg';
    	msgcontent = document.createElement('div');
    	msgcontent.id = 'msgcontent';
    	document.body.appendChild(msg);
    	msg.appendChild(msgcontent);
    	msg.style.filter = 'alpha(opacity=0)';
    	msg.style.opacity = 0;
    	msg.alpha = 0;
  	} 
	else 
	{
    	msg = document.getElementById('msg');
    	msgcontent = document.getElementById('msgcontent');
  	}
  	msgcontent.innerHTML = string;
  	msg.style.display = 'block';
  	var msgheight = msg.offsetHeight;
  	var targetdiv = document.getElementById(target);
  	targetdiv.focus();
  	var targetheight = targetdiv.offsetHeight;
  	var targetwidth = targetdiv.offsetWidth;
  	var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
  	var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
  	msg.style.top = topposition + 'px';
  	msg.style.left = leftposition + 'px';
  	clearInterval(msg.timer);
  	msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
  	if(!autohide) 
	{
    	autohide = MSGHIDE;  
  	}
  	window.setTimeout("hideMsg()", (autohide * 2000));
}
function hideMsg(msg) 
{
  	var msg = document.getElementById('msg');
  	if(!msg.timer) 
	{
    	msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
  	}
}
function fadeMsg(flag) 
{
  	if(flag == null) 
	{
    	flag = 1;
  	}
  	var msg = document.getElementById('msg');
  	var value;
  	if(flag == 1) 
	{
    	value = msg.alpha + MSGSPEED;
  	} 
	else 
	{
    	value = msg.alpha - MSGSPEED;
  	}
  	msg.alpha = value;
  	msg.style.opacity = (value / 100);
  	msg.style.filter = 'alpha(opacity=' + value + ')';
  	if(value >= 99) 
	{
    	clearInterval(msg.timer);
    	msg.timer = null;
  	} 
	else if(value <= 1) 
	{
    	msg.style.display = "none";
    	clearInterval(msg.timer);
  	}
}
function leftPosition(target) 
{
  	var left = 0;
  	if(target.offsetParent) 
	{
    	while(1) 
		{
      		left += target.offsetLeft;
      		if(!target.offsetParent) 
			{
        		break;
      		}
      		target = target.offsetParent;
    	}
  	}
  	else if(target.x) 
  	{
    	left += target.x;
  	}
  	return left;
}
function topPosition(target) 
{
  	var top = 0;
  	if(target.offsetParent) 
	{
    	while(1) 
		{
      		top += target.offsetTop;
      		if(!target.offsetParent) 
			{
        	break;
      		}
      		target = target.offsetParent;
    	}
	} 
	else if(target.y) 
	{
		top += target.y;
	}
	return top;
}
if(document.images) 
{
  	arrow = new Image(7,80); 
  	arrow.src = "../images/msg_arrow.gif"; 
}
