// JavaScript Document
/* BEGIN FORM FIELD VALIDATION FUNCTIONS */
function validate_required(field)
{
	with (field)
	{
		if (value==null||value=="")
		{
			return false;
		} else {
			field.focus();
			return true;
		}
	}
}
function validate_expression(field, expr)
{
	var ex = '';
	switch (expr) {
		case 'alpha':
			ex = /^[a-zA-Z ]+$/;
			break;
		case 'number':
			ex  = /^[0-9]+$/;
			break;
		case 'alphanum':		
			ex = /^[0-9a-zA-Z ]+$/;
			break;
		case 'email':
			ex = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-Z0-9]{2,4}$/;	
			break;
		default: // alpha
			ex = /^[a-zA-Z ]+$/;
			break;
	}

	var val = field.value.replace(/ /,'');
	if (val.match(ex)) {
		return true;	
	} else {
		field.focus();
		return false;
	}
}

function compare_values(field_a, field_b) {
	if (field_a.value == field_b.value) {
		return true;
	} else {
		field_a.focus();
		return false;
	}
}
/* END FORM FIELD VALIDATION FUNCTIONS */

/* BEGIN FORM VALIDATION FUNCTIONS */
function checkForm(form) {
	var msg = '';
	if(!validate_required(form.cName)) {
		msg = msg + '  Your Name\n';
		form.cName.focus();
	}
	if(!validate_required(form.cEmail) || !validate_expression(form.cEmail, 'email')) {
		msg = msg + '  Your Email Address\n';
		form.cEmail.focus();
	}
	if(!validate_required(form.cPhone)) {
		msg = msg + '  Your Phone Number\n';
		form.cPhone.focus();
	}
	if(msg.length > 0) {
		alert('Please complete or correct the following:\n' + msg);
		return false;
	}
	
	if(!verifyCaptcha(form))
	{
		alert("Your CAPTCHA entry is not correct.\nTry again, or click the 'refresh' link to create a new image.");
		return false;
	}

	return true;
}
/* END FORM VALIDATION FUNCTIONS */

/* BEGIN CAPTCHA FUNCTIONS */
function newXmlHttpRequest()
{
	var xmlHttpRequest;
	if(window.XMLHttpRequest)
	{
		xmlHttpRequest = new XMLHttpRequest();
	}
	else
	{
		try
		{
			xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(ee)
			{
				return null;
			}
		}
	}
	return xmlHttpRequest;
}

function verifyCaptcha(f)
{
	sfEls = f.getElementsByTagName("div");
	for(var i = 0; i < sfEls.length; i++)
	{
		var padded = " " + sfEls[i].className + " ";
		if(padded.indexOf(" captchavalid ") != -1)
		{
			var captcha;
			var hash;
			var elements = sfEls[i].getElementsByTagName("input");
			for(var j = 0; j < elements.length; j++)
			{
				if(elements[j].name == "captcha")
				{
					captcha = elements[j].value;
					if(captcha == "")
						return false;
				}
				if(elements[j].name == "hash")
					hash = elements[j].value;
			}
			if(hash && captcha)
			{
				var xmlHttpRequest = newXmlHttpRequest();
				xmlHttpRequest.open("GET", "/userfiles/captcha/" + escape(hash) + "/" + escape(captcha) + ".xml?t=" + Math.random(), false);
				xmlHttpRequest.setRequestHeader("X-Requested-With", "XMLHttpRequest");
				xmlHttpRequest.send(null);
				if(xmlHttpRequest.status == 200 && xmlHttpRequest.responseXML)
				{
					for(var k = 0; k < xmlHttpRequest.responseXML.childNodes.length; k++)
					{
						if(xmlHttpRequest.responseXML.childNodes[k].nodeName == "xml" && xmlHttpRequest.responseXML.childNodes[k].firstChild && xmlHttpRequest.responseXML.childNodes[k].firstChild.nodeName == "message")
						{
							if(xmlHttpRequest.responseXML.childNodes[k].firstChild.firstChild.nodeValue != 'ok')
								return false;
						}
					}
				}
			}
		}
	}
		
	return true;
}

function refreshCaptcha(f)
{
	var captcha, hash, image;
	var elements = f.getElementsByTagName("input");
	for(var i = 0; i < elements.length; i++)
	{
		if(elements[i].name == "captcha")
			captcha = elements[i];
		if(elements[i].name == "hash")
			hash = elements[i];
	}
	elements = f.getElementsByTagName("img");
	if(elements.length)
		image = elements[0];
	if(!captcha || !hash || !image)
	{
		alert("Unable to refresh captcha");
		return false;
	}

	var xmlHttpRequest = newXmlHttpRequest();
	xmlHttpRequest.open("GET", "/userfiles/captcha/new.xml?t=" + Math.random(), false);
	xmlHttpRequest.setRequestHeader("X-Requested-With", "XMLHttpRequest");
	xmlHttpRequest.send(null);
	if(xmlHttpRequest.status == 200 && xmlHttpRequest.responseXML)
	{
		for(var k = 0; k < xmlHttpRequest.responseXML.childNodes.length; k++)
		{
			if(xmlHttpRequest.responseXML.childNodes[k].nodeName == "xml" && xmlHttpRequest.responseXML.childNodes[k].firstChild && xmlHttpRequest.responseXML.childNodes[k].firstChild.nodeName == "message")
			{
				if(xmlHttpRequest.responseXML.childNodes[k].firstChild.firstChild.nodeValue == 'ok' && xmlHttpRequest.responseXML.childNodes[k].childNodes[1].firstChild)
				{
					var newhash = xmlHttpRequest.responseXML.childNodes[k].childNodes[1].firstChild.nodeValue;
					hash.value = newhash;
					captcha.value = "";
					image.src = "./userfiles/captcha/" + escape(newhash) + ".jpg";
					return true;
				}
			}
		}
	}
	alert("Unable to refresh captcha");
	return false;
}
/* END CAPTCHA FUNCTIONS */

function confirm_delete(obj_name, id, page) {
	if (confirm("Are you sure you want to delete " + obj_name + "?")) {
		window.location.href = page + "?id=" + id + "&action=remove";
	}
}

/* BEGIN VIDEO FUNCTIONS */
function init() {
	if(isHome) {
		setVid('KandiRiverhaven');
	}
	else if(isMedia){
		setMediaVid('PDA_Mark_Rx');
	}
}
function togglePlay() {
	if(mySwf) {
		if(document.getElementById("btnPlay").className == 'play')
			document.getElementById("btnPlay").className = 'play-on';
		else 
			document.getElementById("btnPlay").className = 'play';
		
		mySwf.togglePlay();
	}

	return false;
}
function toggleAudio() {
	if(mySwf) {
		if(document.getElementById("btnAudio").className == 'audio')
			document.getElementById("btnAudio").className = 'audio-on';
		else 
			document.getElementById("btnAudio").className = 'audio';
			
		mySwf.toggleAudio();
	}

	return false;
}
function setVid(vidName) {
	so = new SWFObject("./assets/flash/pdaVideo.swf", 'pdaSwf', "313", "204", "8", "#FFFFFF");
	so.addVariable("clip", vidName);
	so.addParam("wmode", "transparent");
	so.addParam("allowScriptAccess", "always");
	so.write("pdaVideo");
	
	mySwf = document.getElementById('pdaSwf');
	
	return false;
}

function setMediaVid(vidName) {
	so = new SWFObject("./assets/flash/pdaVideo.swf", 'pdaSwf', "400", "300", "8", "#FFFFFF");
	so.addVariable("clip", vidName);
	so.addParam("wmode", "transparent");
	so.addParam("allowScriptAccess", "always");
	so.write("pdaVideo");
	
	mySwf = document.getElementById('pdaSwf');
	
	return false;
}
/* END VIDEO FUNCTIONS */

window.onload = function() {
	if(isHome || isMedia) {
		init();
	}
}

