var lastSelectedBorder			= null;
var	forgotPasswordDialog		= null;
preloadImages();
var postDialog					= null;

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CLIENT SIDE IMAGE FLICKER VIA CSS ROLLOVERS MAKES ME WANT TO BEAT SOMEONE SENSLESS.  LET'S HELP THE
// POOR VICTIM BY PRE-CACHING SOME IMAGES NON?  OUI.
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function preloadImages() {
var x_navImagePath				= '/images/nav/';
var x_nav01_0					= new Image();				x_nav01_0.src			= x_navImagePath + 'nav01-0-v2.png';
var x_nav01_1					= new Image();				x_nav01_1.src			= x_navImagePath + 'nav01-1-v2.png';
var x_nav02_0					= new Image();				x_nav02_0.src			= x_navImagePath + 'nav02-0-v2.png';
var x_nav02_1					= new Image();				x_nav02_1.src			= x_navImagePath + 'nav02-1-v2.png';
var x_nav03_0					= new Image();				x_nav03_0.src			= x_navImagePath + 'nav03-0-v2.png';
var x_nav03_1					= new Image();				x_nav03_1.src			= x_navImagePath + 'nav03-1-v2.png';
var x_nav04_0					= new Image();				x_nav04_0.src			= x_navImagePath + 'nav04-0-v2.png';
var x_nav04_1					= new Image();				x_nav04_1.src			= x_navImagePath + 'nav04-1-v2.png';

var x_catNav_0					= new Image();				x_catNav_0.src			= '/images/categoryBG-0.gif';
var x_catNav_1					= new Image();				x_catNav_1.src			= '/images/categoryBG-1.gif';
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VALIDATE A SEARCH FORM FOR BASIC INPUT AND THEN PROCEED TO SUBMIT IT.
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function doSearch(formObj) {
var F1							= formObj.searchQuery;
	if (F1.value.length == 0) {
	alert('Please enter your search string before proceeding!');
	F1.focus();
	return;
	}
formObj.submit();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UserProtectField(str, wrapLen) {
	if (!str) {
	return '';
	}
var result						= '';
var i							= 0;
var j							= 0;
var c							= 0;
	for (i=0; i<str.length; i++) {
	c							= str.charAt(i);
		if (c == ' ') {
		j						= 0;
		}
		if (j > wrapLen) {
		result					+= ' ';
		j						= 0;
		}
	result						+= c;
	j++;
	}
return result;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// RETURN THE TOP,LEFT POSITION OF AN ELEMENT BY FOLLOWING THE OFFSET TREE FROM A PARTICULAR RELATIVELY
// POSITIONED OBJECT ON THE PAGE BACK TO THE TOP OF THE DOM.  USED TO POSITION ABSOLUTE DIV'S DYNAMICALLY
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getElementPosition(elemID){
var offsetTrail 				= document.getElementById(elemID);
var offsetLeft					= 0;
var offsetTop 					= 0;
	while (offsetTrail){
	offsetLeft 					+= offsetTrail.offsetLeft;
	offsetTop 					+= offsetTrail.offsetTop;
	offsetTrail 				= offsetTrail.offsetParent;
	}
	if (navigator.userAgent.indexOf('Mac') != -1 && typeof document.body.leftMargin != 'undefined') {
	offsetLeft 					+= document.body.leftMargin;
	offsetTop					+= document.body.topMargin;
	}
return {left:offsetLeft,top:offsetTop};
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function focusSearch(field, clr, str) {
	if (field) {
	field.value					= str;
	field.style.color			= clr;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// DYNAMICALLY CHANGE THE BORDER COLOR OF THE TARGET OBJECT
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function rollBorder(targetObj,clr) {
	if (lastSelectedBorder == targetObj) {
	return;
	}
setBorderColor(targetObj,clr);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function setBorderColor(targetObj,clr) {
	if (targetObj && targetObj.style) {
	targetObj.style.borderColor		= clr;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function clickBorder(targetObj,lastColor,newColor) {
	if (lastSelectedBorder != null) {
	setBorderColor(lastSelectedBorder,lastColor);
	}
setBorderColor(targetObj,newColor);
lastSelectedBorder					= targetObj;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function rollColors(targetObj,clrBG,clrFG) {
	if (targetObj) {
	targetObj.style.backgroundColor	= clrBG;
	targetObj.style.color			= clrFG;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function SetCookie (name, value) {
   var expDate = new Date();
   var oneYear = (7 * 24 * 60 * 60 * 1000) * 52;
   expDate.setTime (expDate.getTime() + oneYear);
   document.cookie = name + "=" + escape(value) + ";" + "expires=" + expDate.toGMTString();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function SetCookieByHours (name, value, hours) {
   var expDate = new Date();
   var expiryTime = (hours * 60 * 60 * 1000);
   expDate.setTime (expDate.getTime() + expiryTime);
   document.cookie = name + "=" + escape(value) + ";" + "expires=" + expDate.toGMTString();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function SetTempCookie (name, value) {
   var expDate = new Date();
   var expiryTime = 0;
   document.cookie = name + "=" + escape(value) + ";" + "expires=0";
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function GetCookie (name) {
   var result = null;
   var myCookage = " " + document.cookie + ";";
   var searchName = " " + name + "=";
   var startCookie = myCookage.indexOf(searchName);
   var endCookie;
   if (startCookie != -1 ) {
      startCookie += searchName.length;
      endCookie = myCookage.indexOf(";",startCookie);
      result = unescape(myCookage.substring(startCookie, endCookie));
   }
   return result;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ValidateAlpha(str) {
var testStr=/^[a-zA-Z]+$/;
	if (!(testStr.test(str))) {
    return false;
	}
return true;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ValidateAlphaNumeric(str) {
var testStr=/^[a-zA-Z0-9]+$/;
	if (!(testStr.test(str))) {
    return false;
	}
return true;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ValidatePhoneNumber(str) {
var testStr=/^[\(]?(\d{0,3})[\)]?[\s]?[\-.]?(\d{3})[\s]?[\-.]?(\d{4})[\s]?[x]?(\d*)$/;
	if (!(testStr.test(str))) {
    return false;
	}
return true;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ValidateEmail(str) {
var testStr=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	if (!(testStr.test(str))) {
    return false;
	}
return true;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function serializeSortBoxValues(boxname) {
var list					= document.getElementById(boxname);
	if (!list) {
	return '';
	}
var items					= list.getElementsByTagName('li');
var arrayList 				= new Array();
var itemID					= null;
	for (var i=0; i<items.length; i++) {
	itemID	 				= items[i].getAttribute("id");
	arrayList.push(itemID);
	}
var str						= arrayList.join(',');
return str;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function setVisible(divID,b) {
var obj								= document.getElementById(divID);
	if (obj) {
	obj.style.display				= (b) ? 'block' : 'none';
	}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//					PASSWORD SCRIPTS
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function doForgotPasswordDialog(videoID) {
	if (forgotPasswordDialog != null) {
	return;
	}
var url								= "/clientServer/?section=ForgotPassword";
forgotPasswordDialog				= document.createElement('DIV');
handleGetComplete					= 'handleForgotPasswordGetComplete';
handleDialogClose					= 'closeForgotPasswordDialog';
doAjaxPopup('commonDialogLong',forgotPasswordDialog,url,500,500);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function closeForgotPasswordDialog() {
closeAjaxPopup(forgotPasswordDialog);
forgotPasswordDialog				= null;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function submitForgotPasswordForm(formObj) {
var F1								= formObj.LOGIN;
var F2								= formObj.EMAIL;
var login							= "";
var email							= "";
	if(F1.value.length==0){
	alert("Please enter your username before proceeding.");
	F1.focus();
	return;
	}
	if(F2.value.length==0){
	alert("Please enter your email address before proceeding.");
	F2.focus();
	return;
	}
login								= F1.value;
email								= F2.value;
var params							= "section=ForgotPassword&DOFORM=1&LOGIN="+login+"&EMAIL="+email;
showLoadingMessage();
handlePostComplete					= 'handleForgotPasswordPostComplete';
postAjaxContent('/clientServer/',params);
}/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function submitForgotLoginForm(formObj) {
var F1								= formObj.EMAIL;
var email							= "";
	if(F1.value.length==0){
	alert("Please enter your email address before proceeding.");
	F1.focus();
	return;
	}
email								= F1.value;
var params							= "section=ForgotPassword&DOFORM=2&EMAIL="+email;
showLoadingMessage();
handlePostComplete					= 'handleForgotPasswordPostComplete';
postAjaxContent('/clientServer/',params);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function handleVideoURLFieldClick(textObj) {
	if (textObj) {
	textObj.focus();
	textObj.select();
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function handleEmbedCodeFieldClick(textObj) {
	if (textObj) {
	textObj.focus();
	textObj.select();
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function handleForgotPasswordGetComplete(success,xmlHTTP) {
	responseContainer.innerHTML		= xmlHTTP.responseText;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function handleForgotPasswordPostComplete(success,xmlHTTP) {
	responseContainer.innerHTML		= xmlHTTP.responseText;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function facebook_share(u,t) {
window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
return false;
}
