/**
* drewvid popout
*/ 
function drewvidout( id,title ) {
	if(!document.getElementById || !document.getElementsByTagName) return;
	AdddivsNcss();
	h=document.getElementById('viddiv');
	h.style.display="block";

	h.innerHTML = ' <div><div id="alldone_vid">&nbsp;</div><div class="playerInnerBox_vid"><object width="660" height="405"><param name="movie" value="http://www.youtube.com/v/'+id+'?fs=1&amp;hl=en_US&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;border=1&autoplay=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'+id+'?fs=1&amp;hl=en_US&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;border=1&autoplay=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="660" height="405"></embed></object><div class="title_vid">'+title+'</div></div>';
	adv=document.getElementById('alldone_vid');
	adv.onclick=hideviddiv;
}

function hideviddiv(){
	var h=document.getElementById('viddiv');
	h.style.display="none";
	h.innerHTML = '';
}

function AdddivsNcss(){
	if(document.getElementById("viddivcssid"))
		return; // prevent redundant pulls
	var h,l;
	h=document.createElement("div");
	h.id="viddiv";
	h.setAttribute("id","viddiv");
	document.getElementsByTagName("body")[0].appendChild(h);	
	
	l=document.createElement("link");
	l.id="viddivcssid";
	l.setAttribute("id","viddivcssid");
	l.setAttribute("type","text/css");
	l.setAttribute("rel","stylesheet");
	l.setAttribute("href","/js/drewvid.css");
	l.setAttribute("media","screen");
	document.getElementsByTagName("head")[0].appendChild(l);
}





/**
* Change Magic Sel Status
*/ 
function changeStatus( id ) {
	$( 'static_' + id ).hide();
	$( id ).show();
}


/**
* Update Magic Sel Status
*/
function updateStatus(  field, defval, dd, expiredays ) {
	var obj = $(field);
	if(dd != 'false'){
		var inval = obj.options[obj.selectedIndex].value;
		if(obj.options[obj.selectedIndex].text){
			$( 'static_' + field ).down().innerHTML = obj.options[obj.selectedIndex].text ? obj.options[obj.selectedIndex].text : "none";
			$( field ).hide();
			$( 'static_' + field ).show();
		}
	}
	else{
		var inval = obj.value;
		$( 'static_' + field ).down().innerHTML = inval != '' ? inval : "select";
	}

	var exdate=new Date();
	expiredays = (expiredays > 0 ? expiredays : 2);
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=field+ "=" +escape(inval)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}


var validx_field = 0;
var validx_require = 1;
var validx_fail_require = 2;
var validx_allowed = 3;
var validx_fail_allowed = 4;
var validx_min = 5;
var validx_fail_min = 6;
var validx_max = 7;
var validx_fail_max = 8;

function validate_form(name)
{
	var theform = "";
	for (var i=0; i < document.forms.length && theform==""; i++)
	{
		if (document.forms[i].name==name)
			theform = document.forms[i];
	}
	if (theform=="")
		return false;
		
	for (var i=0; i < theform.elements.length; i++)
	{
		if (theform.elements[i].id.substring(0,8)=="validate")
		{
			var pairs = theform.elements[i].value.split(/\;/);
			var formdata = new Array();
			for (var vfp=0; vfp < pairs.length; vfp++)
			{
				var tmp = pairs[vfp];
				var dat = tmp.split(/=/);
				if (dat[0] != "" && dat[1] != "")
				{
					formdata[eval('validx_'+dat[0])] = dat[1];
				}
			}
			if (formdata[0] || formdata[1])
			{
				//expected values are:
				//field OR require(comma'd list of fields, require at least one),
				//allowed (=text, =password, =phone, =email),
				//min,max (length)
				//fail_require,fail_allowed,fail_min,fail_max (alert messages on failure)
				
				if (formdata[validx_field])
				{
					var field = "";
					for (var l=0; l < theform.elements.length && !field; l++)
					{
						if (theform.elements[l].name==formdata[validx_field])
							field = theform.elements[l];
					}
					if (field)
					{
						return validate_field(field,formdata);
					}
					alert('Bad validation entry for field: '+formdata[validx_field]);
					return true;	//bad validation field
				}
				if (formdata[validx_require])
				{
					var reqfields = formdata[validx_require].split(/\,/);
					var count = 0;
					for (var q=0; q < reqfields.length; q++)
					{
						var field = "";
						for (var l=0; l < theform.elements.length && field==""; l++)
						{
							if (theform.elements[l].name==reqfields[q])
							{
								field = theform.elements[l];
								if (field)
								{
									if (!validate_field(field,formdata))
										return false;
										
									if (field.type=='checkbox'||field.type=='radio')
									{
										if (field.checked==true)
											count++;
									}
									else if (field.value.length > 0)
										count++
								}
							}
						}
					}
					if (count==0)
					{
						alert(formdata[validx_fail_require]);
						return false;
					}
				}
			}
		}
	}
	return true;
}
					
function validate_field(field,formdata)
{					
	if (formdata[validx_min] && field.value.length<Number(formdata[validx_min]))
	{
		alert(formdata[validx_fail_min]);
		return false;
	}
	if (formdata[validx_max] && field.value.length>Number(formdata[validx_max]))
	{
		alert(formdata[validx_fail_max]);
		return false;
	}
	if (formdata[validx_allowed])
	{
		var fail = 0;
		if (formdata[validx_allowed]=='text')
		{
			regex = /[^$A-Za-z0-9_\.\-\,\/]/;
			fail = field.value.match(regex);
		}
		else if (formdata[validx_allowed]=='email')
		{
			regex = /^.+@.+\..{2,3}$/;
			fail = !(field.value.match(regex));
		}
		else if (formdata[validx_allowed]=='password')
		{
			regex = /[^$A-Za-z0-9_]/;
			fail = field.value.match(regex);
		}
		else if (formdata[validx_allowed]=='phone')
		{
			fail = (field.value.length > 0 && isNaN(parseInt(field.value.replace(/[\(\)\.\-\ ]/g, ''))));
		}
		if (fail)
		{
			alert(formdata[validx_fail_allowed]);
			return false;
		}
	}
	return true;
}
