//****************************** Browser Detection. ******************************
var detect = navigator.userAgent.toLowerCase();
	var OS,browser,version,total,thestring;
	insubcategory = false;
	if (checkIt('konqueror'))
	{
		browser = "Konqueror";
		OS = "Linux";
	}
 else if (checkIt('netscape')) browser = "Netscape Navigator";
	else if (checkIt('safari')) browser = "Safari";
	else if (checkIt('omniweb')) browser = "OmniWeb";
	else if (checkIt('opera')) browser = "Opera";
	else if (checkIt('webtv')) browser = "WebTV";
	else if (checkIt('icab')) browser = "iCab";
	else if (checkIt('msie')) browser = "Internet Explorer";
	else if (checkIt('firefox')) browser = "Mozilla Firefox";
	else if (!checkIt('compatible'))
	{
		browser = "Mozilla"
		version = detect.charAt(8);
	}
	else browser = "An unknown browser";

	if (!version) version = detect.charAt(place + thestring.length);

	if (!OS)
	{
		if (checkIt('linux')) OS = "Linux";
		else if (checkIt('x11')) OS = "Unix";
		else if (checkIt('mac')) OS = "Mac"
		else if (checkIt('win')) OS = "Windows"
		else OS = "an unknown operating system";
	}

	function checkIt(string)
	{
		place = detect.indexOf(string) + 1;
		thestring = string;
		return place;
	}



function getposOffset(what, offsettype)
{
	var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	
	counter = 0;
	while (parentEl!=null)
	{
		alert(counter);
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
		counter++;
		
	}
	return totaloffset;
}

function clearbrowseredge(obj, whichedge)
{
	var edgeoffset=0
	
	if (whichedge=="rightedge")
	{
		var windowedge=this.ie && !window.opera? this.iecompattest().scrollLeft+this.iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
		
		contentmeasure=this.dropmenuobj.offsetWidth
		
		if (windowedge-this.dropmenuobj.x < this.dropmenuobj.contentmeasure)  //move menu to the left?
		{
			edgeoffset=this.dropmenuobj.contentmeasure-obj.offsetWidth;
		}
	}
	else
	{
		var topedge=this.ie && !window.opera? this.iecompattest().scrollTop : window.pageYOffset;
		var windowedge=this.ie && !window.opera? this.iecompattest().scrollTop+this.iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18;
		this.dropmenuobj.contentmeasure=this.dropmenuobj.offsetHeight
		if (windowedge-this.dropmenuobj.y < this.dropmenuobj.contentmeasure)
		{
			 //move up?
			edgeoffset=this.dropmenuobj.contentmeasure+obj.offsetHeight
			if ((this.dropmenuobj.y-topedge)<this.dropmenuobj.contentmeasure) //up no good either?
			{
				edgeoffset=this.dropmenuobj.y+obj.offsetHeight-topedge;
			}
		}
	}
	return edgeoffset
}

//****************************** Nav Controls ******************************
function showNav(itemName,itemNum,width)
{
	
	showItem = document.getElementById(itemName);
	
	if(showItem == null)
	{
		return;
	}
	
	///###### COMMENT OUT to force sub nav to utilize parent's width ######
	//width = 224;
	
	//alert(showItem.parentNode.offsetLeft);
	//alert(showItem.parent.style.left);
	
	
	if(OS == "Windows")
	{
		if(browser != "Internet Explorer")
		{
			//Non-IE, PC
			if(itemNum == 1)
			{
				showItem.style.marginTop = "0px";
				showItem.style.left = showItem.parentNode.offsetLeft + "px";
				
			}
			else
			{
				//showItem.style.marginTop = "-9px";
			}
			//show nav
			showItem.style.display = "block";
		}
		else
		{
//			showItem.style.width = width;
			if(itemNum == 1)
			{
				showItem.style.marginTop = "18px";
				showItem.style.left = showItem.parentNode.offsetLeft + "px";
			}
			else
			{
				//showItem.style.marginTop = "-8px";
			}
			//show nav
	 		showItem.style.display = "block";
	 	}
	}
	//only
	else if(OS =="Mac")
	{
		//Safari & Firefox - Mac (both render the same)
		//add a little to the margins
		showItem.style.width = width;
		if(itemNum == 1)
		{
			showItem.style.marginTop = "2px";
			showItem.style.marginLeft = "-1px";
		}
		else
		{
			showItem.style.marginTop = "-9px";
		}
		//show nav
		showItem.style.display = "block";
	}
	else
	{
		showItem.style.width = width;
		if(itemNum == 1)
		{
			showItem.style.marginTop = "2px";
		}
		else
		{
			showItem.style.marginTop = "-9px";
		}
		//show nav
		showItem.style.display = "block";
	}
}

//****************************** General Functions ******************************
//show layer by id
function show(itemName)
{
	clearInterval(timer);
	showItem = document.getElementById(itemName);
	showItem.style.display="block";
	}

//hide layer by id
function hide(itemName)
{
	hideItem = document.getElementById(itemName);

	if(hideItem)
	{
		hideItem.style.display="none";
	}
}

//hides an item on a delay

lastfield = "";
function hideTimer(itemName)
{

	if(lastfield != itemName)
	{
		timer2 = setTimeout("hide('"+lastfield+"')",2000);
		lastfield = itemName;
		if (!insubcategory)
		{
		timer = setTimeout("hide('"+itemName+"')",2000);

		}
		else
		{
	 	clearTimer();
		}
	}
}

function subcatTrue()
{
	insubcategory = true;
}

function subcatFalse()
{
	insubcategory = false;
}


function clearTimer()
{


	clearTimeout(timer);
	//clearInterval(timer);
}



function toggle(itemName)
{

	toggleItem = document.getElementById(itemName);

	//alert(itemName);

	//alert(toggleItem.style.display);

	if(toggleItem.style.display != "none")
	{
		toggleItem.style.display = "none";
	}
	else
	{
		toggleItem.style.display = "block";
	}
}

//generic popup window
function openWindow(url, name, width, height,scrollbars)
{
window.open(url,name,'width='+width+',height='+height+',top=200,left=200,scrollbars='+scrollbars+',resize=yes');
}

//dreamweaver preloader stuff
function preloadImages()
{ //v3.0
 var d=document; if(d.images)
{ if(!d.p) d.p=new Array();
 var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)

 if (a[i].indexOf("#")!=0)
{ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

function swapImgRestore()
{ //v3.0
 var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function findObj(n, d)
{ //v4.01
 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length)
{
 d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
 if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
 for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
 if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function swapImage()
{ //v3.0
 var i,j=0,x,a=swapImage.arguments; document.sr=new Array; for(i=0;i<(a.length-2);i+=3)
 if ((x=findObj(a[i]))!=null)
{document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//****************************** SIMPLE AJAX FOR BLOG PAGES, ETC ******************************

//Detection Scripting
var please_wait = "<span class='colorHeader1'><b>Loading...</b></span>";
//GENERICA AJAX CALL
function open_url(url,page_id,level,data,target)
{

	//alert(page_id+","+level+","+target);

 	if ( ! document.getElementById)
{
 		return false;
 	}

 	if (please_wait != null)
{
 		document.getElementById(target).innerHTML = please_wait;
 	}

 	if (window.ActiveXObject)
{
 		link = new ActiveXObject("Microsoft.XMLHTTP");
 	}
else if (window.XMLHttpRequest)
{
 		link = new XMLHttpRequest();
 	}

 	if (link == undefined)
{
 		return false;
 	}

 	link.onreadystatechange = function()
{ response(url, target); }
 	link.open("POST", url+"?page_id="+page_id+"&level="+level+"&data="+data, true);
	link.send(null);
}

function response(url, target)
{
 	if (link.readyState == 4)
{
	 	document.getElementById(target).innerHTML = (link.status == 200) ? link.responseText : "<span class='defaultText'>Error! Data Unavailable. Errorcode: " + link.status + "</span>";
	}
}

//****************************** Generic Form Validation ******************************

function validateForm(formname)
{
	//root vars for the validate, dont move them!
	var thisForm = eval('document.'+formname);
	var total_items = thisForm.elements.length;
	var errors = "";
	var prevRadio = "";

	//RegEx determines how explicit validation will be based on type
	var noRegEx = /^.*$/;
	var textRegEx = /^.+$/;
	var phoneRegEx = new RegExp(/^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/);

	var emailRegEx = /^([0-9a-zA-Z._])+(@)[0-9a-zA-Z._]+$/;
	var webRegEx = /^(http:\/\/)*(www.)[0-9a-zA-Z.]+$/;

	for(i=0;i<total_items;i++)
	{
		//id
		thisId = thisForm.elements[i].id;
		//id for output
		thisLabel = thisForm.elements[i].id.substr(2);
		label_name = thisForm.elements[i].id;

		//name for radios
		thisName = thisForm.elements[i].name;

		//value to determine REGEX values where applicable - t for text or select, p for phone, w for web, r for radio
		thisVal = thisForm.elements[i].id.substr(0,1);

		var regEx = "";

		//pull diff RegEx values for diff field types
		switch(thisVal)
		{
			case "p":
				regEx = phoneRegEx;
				break;
			case "w":
				regEx = webRegEx;
				break;
			case "e":
				regEx = emailRegEx;
				break;
			case "x":
				regEx = noRegEx;
				break;
			default:
				regEx = textRegEx;
		}

		//text & select fields
		if(thisForm.elements[i].type == "text" || thisForm.elements[i].type == "select")
		{
			if(thisVal == "t")
			{
				if(thisForm.elements[i].value == "")
				{
					errors += "*Please Enter "+label_name+"\n";
				}
			}
			else
			{
				if(!regEx.test(thisForm.elements[i].value))
				{
					if(thisVal == "p")
					{
						errors += "*Please Enter a Phone Number (000)000-0000\n";
					}
					else if(thisVal == "w")
					{
						errors += "*Please Enter a Valid Website [www.site.com]\n";
					}
					else if(thisVal == "e")
					{
						errors += "*Please Enter a Valid Email [yourname@yoursite.com]\n";
					}
					else
					{
						errors += "*Please Enter "+label_name+"\n";
					}
				}
			}
		//radio buttons
		}
		else if(thisForm.elements[i].type == "radio")
		{
			//get total radio btns of this name
		 thisLength = thisForm.elements[thisName].length;

			var numRadios = thisLength;
			var radioErrors = 0;

			for(x=0;x<numRadios;x++)
			{
				//get checked properties for each radio btn	in this group
				if(thisForm.elements[thisName][x].checked == false)
				{
					radioErrors++;
				}

				if(radioErrors == numRadios)
				{
					//only log errors for each radio group
					if(prevRadio != thisName)
					{
						prevRadio = thisName;
						errors += "*Please Select a Choice for "+label_name+"\n";
					}
				}
			}
		}
		else if(thisForm.elements[i].type == "checkbox")
		{
			if(thisVal == "c")
			{
				if(thisForm.elements[i].checked == false)
				{
					errors += "*Please Check an Option for "+label_name+"\n";
				}
			}
			//for any other element
		}
		else
		{
			if(thisForm.elements[i].value == "")
			{
				errors += "*Please Enter (or Select) "+label_name+"\n";
			}
		}
	}

	if(errors != "")
	{
		alert(errors);
		return false;
	}

	return true;
}

function ValidateEmailFriend()
{
	if(document.email_friend.sender_name.value == "")
	{
		alert("Please Enter Your Name");
		document.email_friend.sender_name.focus();
		return false;
	}
	var fnameCheck =/^[0-9a-zA-Z \,#.]+$/;
	if(!fnameCheck.test(document.email_friend.sender_name.value))
{
		alert("Please Check Your Name for Valid Characters (only Numbers,Letters, ,#.)");
		document.email_friend.sender_name.focus();
		return false;
	}

	var emailCheck =/^([0-9a-zA-Z._])+(@)[0-9a-zA-Z._]+$/;
	if(!emailCheck.test(document.email_friend.sender_email.value))
	{
		alert("Please Enter Your Valid Email Address");
		document.email_friend.sender_email.focus();
		return false;
	}

	if(document.email_friend.friend_name.value == "")
	{
		alert("Please Enter Your Friend's Name");
		document.email_friend.friend_name.focus();
		return false;
	}
	var fnameCheck =/^[0-9a-zA-Z \,#.]+$/;
	if(!fnameCheck.test(document.email_friend.friend_name.value))
{
		alert("Please Check Your Friend's Name for Valid Characters (only Numbers,Letters, ,#.)");
		document.email_friend.friend_name.focus();
		return false;
	}

	var emailCheck =/^([0-9a-zA-Z._])+(@)[0-9a-zA-Z._]+$/;
	if(!emailCheck.test(document.email_friend.friend_email.value))
	{
		alert("Please Enter Your Friend's Valid Email Address");
		document.email_friend.friend_email.focus();
		return false;
	}

	return true;

}

function update_view_details(media_id, media_details)
{
	open_url('/manage/mng_assets/asset_details.php',media_id,'',media_details,'media')
}
function update_details(page_id, search_type, search_text)
{
	open_url('/manage/mng_assets/asset_list.php',page_id,search_type,search_text,'media_layer');
}
