// photoProofPro v2.5.0
// (c) 2006 Joseph Pelosi (ilgstudio.com)
// 8/23/2006
// ------------------------
// Global Functions
// requires Prototype JavaScript framework, version 1.5.0_rc0
// --------------------------------



function embedObject(filename, flashName, width, height, variableNames, variableValues, color) {
	if (!color){
		color="#FFFFFF";
	}
	document.write('<object style="vertical-align: bottom" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="'+width+'" height="'+height+'" id="'+flashName+'Flash" align="middle">\n');
	document.write('<param name="allowScriptAccess" value="sameDomain" />\n');
	document.write('<param name="movie" value="'+filename+'" />\n');
	document.write('<param name="quality" value="high" />\n');
	document.write('<param name="bgcolor" value="'+color+'" />\n');

	var flashVars = '';

	if (variableNames && variableNames != ''){
		var varNamesArr  = variableNames.split("|");
		var varValuesArr = variableValues.split("|");
		for (var i=0; i<varNamesArr.length; i++){
			if (varNamesArr[i] != ''){
				flashVars += varNamesArr[i]+"="+varValuesArr[i]+"&";
			}
		}
	}
	if (flashVars != '')	{
		document.write('<param name="flashVars" value="'+flashVars+'" />');
		document.write('<embed src="'+filename+'" flashVars="'+flashVars+'" quality="high" bgcolor="'+color+'" width="'+width+'" height="'+height+'" name="'+flashName+'Flash" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
	} else {
		document.write('<embed src="'+filename+'" quality="high" bgcolor="'+color+'" width="'+width+'" height="'+height+'" name="'+flashName+'Flash" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
	}
	document.write('</object>\n');
}

function showHideLayer(layerID, sh){
	oLayer = $(layerID);
	if (sh=="show"){
		oLayer.style.display = "block";
	} else {
		oLayer.style.display = "none";
	}
}

function display(elID, what) {
	if ($(elID)){
		var myElement = $(elID);
		myElement.innerHTML = what;
	}
}

function addTo(elID, what){
	display(elID, $(elID).innerHTML+what);
}

function imgRollover(el, url){
	$(el).src=url;
}

function changeImg(el, url){
	$(el).src=url;
}

function preloadImage(img){
	preImg= new Image();
	preImg.src=img;
}
/* ======================================= */

function castVote(dir,imgName){
	
	var viewerType = $F('viewerType');
	var thisVote = parseInt($F('voteSelect'));
	var score = parseInt($F('score'));
	var newVotes = parseInt($F('votes'))+1;
	var newScore = thisVote+score;
	
			var requestOptions = {
						method : 'post',
						parameters : "action=castVote" +
						"&score=" + thisVote +
						"&newScore=" + newScore +
						"&file=" + imgName +
						"&votes=" + newVotes +
						"&path=" + dir +
						"&viewerType=" + viewerType,
						onComplete: voteCast
					  };
			 
	new Ajax.Request('includes/admin_AJAX_actions.php', requestOptions);
}



function voteCast(originalRequest){
	//alert (originalRequest.responseText);
	eval("var response = ("+originalRequest.responseText+")");
	$('votes').value = response.votes;
	$('score').value = response.newScore;
	display('voteAverageDisplay', response.avgDisplay);
	display('starsDetail', response.stars);
	display('voteNum', response.votes);
	//alert('stars_'+activeImage+" ---- "+response.thumbStars);
	
	display('stars_'+(activeImage), response.thumbStars);
	$('voteStr_'+(activeImage)).style.display = "inline";
	display('voteTot_'+(activeImage), response.votes);
	display('voteAvg_'+(activeImage), response.avg);
	
}
// #####################################
function getQueryVariable(variable) {
	var query = window.location.search.substring(1);
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++) {
		var pair = vars[i].split("=");
		if (pair[0] == variable) {
		 	return pair[1];
		}
	} 
}
// #####################################
function changeMode(mymode, loadpage){
// ----------------------------------------
// vars
// mymode: (str) 'BW' or 'color'
// loadpage: (bln) flag to load page, or only change display text
// ----------------------------------------
	 var mode = mymode;
	 var p   = $F('p');
	 var ipp = $F('ipp');
	 var o   = getQueryVariable('o');
	 //
		if (!ipp) { ipp='all'; }
		if (!o) { o='img'; }
		if (p==null){
			p=1;
		}
	
	if (loadpage){
		document.location.href = "?recordID="+$F('recordID')+"&action=openbook&mode="+mode+"&dir="+$F('dir')+"&p="+p+"&ipp="+ipp+"&o="+o;		
	} else {
		if (mode == "BW"){
			display('modeChange','<a href="javascript:changeMode(\'color\', true);">Show Color</a>');
		} else {
			display('modeChange','<a href="javascript:changeMode(\'BW\', true);">Show B&amp;W</a>');
		}
	}
}
// #######################################
function sortImages(){
	// submits form with new sort value;
	// called onchange of 'sortSelect' seclectbox
	 var p = $F('p');
	 var ipp = $F('ipp');
	 var o = $F('sortSelect');
	 var rid = $F('recordID');
	 var dir = $F('dir');
	 var mode = $F('mode');
	 //
	 if (!ipp) { ipp='all'; }
	 if (!o) { o='img'; }
	 if (!p) { p='all'; }
	 if (!mode) { mode=''; }
	 var page = 1; 
	
	 var URL = "?recordID="+rid+"&dir="+dir+"&mode="+mode+"&action=openbook&p="+page+"&o="+o+"&ipp="+ipp;
	 document.location.href=URL;
}
// =============================================================
// CLIENT GALLERY ONLY
// =============================================================

	function toggleActiveForm(divId){
		var opt = {
				duration: 0.5,
				queue:'end',
				afterFinished: Element.hide('emailStatus')
		}
		if (divId=='postCommentForm') { //emailpageform
			Effect.BlindUp('emailPageForm', {duration: 0.3, queue:'front'})
		} else {
			Effect.BlindUp('postCommentForm', {duration: 0.3, queue:'front'})
		}
		Effect.toggle(divId, 'blind', opt);
	}
	
	function doEmailPage(divId){
		if (validate(divId, emailValidationArr)){
			//alert ('email Page Here.');
					var recordID = parseInt($F('recordID'));
					var requestOptions = {
								method : 'post',
								parameters : "action=emailClientPage" +
								"&recordID=" + recordID +
								"&recips=" + $F('ep_recip') +
								"&name=" + $F('ep_name') +
								"&email=" + $F('ep_email') +
								"&message=" + $F('ep_comm'),
								onComplete: pageSent
							  };
					Element.show('emailStatus');		 
					display('emailStatus', 'sending email...');
					new Ajax.Request('includes/admin_AJAX_actions.php', requestOptions);

		}
		return false;
	}
	
	function pageSent(originalRequest){
		//alert (originalRequest.responseText);
		eval("var response = ("+originalRequest.responseText+")");
		Element.show('emailStatus');
		display('emailStatus', response.msg);
		$('ep_name').value = '';
		$('ep_recip').value = '';
		$('ep_email').value = '';
		$('ep_comm').value = '';
		
		//
	}


	function doCommentPost(divId, valArr){
		if (validate(divId, valArr)){
			//alert ('email Page Here.');
					var recordID = parseInt($F('recordID'));
					var requestOptions = {
								method : 'post',
								parameters : "action=postComment" +
								"&recordID=" + recordID +
								"&comm_name=" + $F('comm_name') +
								"&comm_email=" + $F('comm_email') +
								"&comm_comm=" + $F('comm_comm'),
								onComplete: commentPosted
							  };
					new Ajax.Request('includes/admin_AJAX_actions.php', requestOptions);
		}
		return false;
	}
	
	
	function commentPosted(originalRequest){
		//alert (originalRequest.responseText);
		eval("var response = ("+originalRequest.responseText+")");
		display('commentContainer', response.commentsHTML);
		$('comm_name').value = '';
		$('comm_email').value = '';
		$('comm_comm').value = '';
	}
	
	function addToLightbox(filename){
		var recordID = parseInt($F('recordID'));
		var requestOptions = {
			method : 'post',
			parameters : "action=addToLightbox" +
			"&recordID=" + recordID +
			"&file=" + filename,
			onComplete: addedToLightbox
		  };
		  new Ajax.Request('includes/admin_AJAX_actions.php', requestOptions);
		
	}
	
	function addedToLightbox(originalRequest){
		alert (originalRequest.responseText);
		eval("var response = ("+originalRequest.responseText+")");
	}
	
	function toggleDefaultPass(pass){
		if ($('useDefaultPass').checked == true){
			$('confirmPass').value = pass;
			$('newPass').value = pass;
		} else {
			$('confirmPass').value = '';
			$('newPass').value = '';		
		}
		
	}
	
	function toggleDefaultUser(){
		
		
			if ($('useDefaultUser').checked == true){
				if (Trim($F('name1'))==''||Trim($F('name2'))==''){
					alert('First and Last name cannot be blank.');
				} else {
					defaultuser = Trim($F('name1')).substring(0,1)+""+Trim($F('name2'));
					$('username').value = defaultuser.toLowerCase();
				}
			} else {
				$('username').value = '';
			}
		}
	
	function validateUserInfo(){
		
			//if (Trim($F('username'))!=''){
				checkUserExists();
			//}
			
			return false;
		
	}
	
	
	function checkUserExists(){
		
		alert('checking user');
		uName = Trim($F('username'));
		if (uName != ""){
			
			var requestOptions = {
					method : 'post',
					parameters : "action=checkUserName" +
					"&username=" + uName,
					onComplete: userChecked
				  };
			new Ajax.Request('includes/admin_AJAX_actions.php', requestOptions);
			
		} else {
			var validationArr = new Array();
			validationArr.push("empty|name1|First Name cannot be blank");
			validationArr.push("empty|name2|Last Name cannot be blank");
			validationArr.push("match|newPass,confirmPass|Passwords do not match");
			if(validate('adduser', validationArr)){
				alert ('we\'re all good1');
				$('adduser').submit();
				//return true;
			} else {
				return false;
			}
			
			
		}
		
	}
	
	function userChecked(originalRequest){
		eval("var response = ("+originalRequest.responseText+")");
		alert(response);
		if(response.usrExists){
			alert ('This username already exists, please choose another');
			return false;
		} else {
			var validationArr = new Array();
			validationArr.push("empty|name1|First Name cannot be blank");
			validationArr.push("empty|name2|Last Name cannot be blank");
			validationArr.push("match|newPass,confirmPass|Passwords do not match");
		
			if(validate('adduser', validationArr)){
				alert ('we\'re all good2');
				$('adduser').submit();
				//return true;
			} else {
				return false;
			}
			
		}
	}
	
	
	function getUserName(){
		if ($('useDefaultUser').checked == true){
				if (Trim($F('name1'))==''||Trim($F('name2'))==''){
					alert('First and Last name cannot be blank.');
					$('useDefaultUser').checked = false;
				} else {
					var requestOptions = {
								method : 'post',
								parameters : "action=getUserName" +
								"&fname=" + $F('name1') +
								"&lname=" + $F('name2'),
								onComplete: usernameGenerated
							  };
					new Ajax.Request('includes/admin_AJAX_actions.php', requestOptions);	
				}
		} else {
			$('username').value = '';
			
		}
	}
	
	
	function usernameGenerated(originalRequest){
		eval("var response = ("+originalRequest.responseText+")");
		//alert(response.msg);
		$('username').value = response.usrName;
	}
	
	
	function Trim(STRING){
		STRING = LTrim(STRING);
		return RTrim(STRING);
	}
	
	function RTrim(STRING){
		while(STRING.charAt((STRING.length -1))==" "){
			STRING = STRING.substring(0,STRING.length-1);
		}
		return STRING;
	}
	
	
	function LTrim(STRING){
		while(STRING.charAt(0)==" "){
			STRING = STRING.replace(STRING.charAt(0),"");
		}
		return STRING;
	}
	

			
			
			function hideAllSubs(){
				showHideLayer('companyOverview','hide');
				showHideLayer('investorRelations','hide');
				showHideLayer('companyQuote','hide');
				$('sub_companyOverview').className = '';
				$('sub_investorRelations').className = '';
				$('sub_companyQuote').className = '';
			}
			
			function showSubContent(id){
				hideAllSubs();
				showHideLayer(id,'show');
				$('sub_'+id).className = 'active';
			}
			
			// check multi checkboxes based on the name passed in.
					function CheckMultiple(name) 
					{
						theFrm = document.frmSS;
						for (var i=0; i < theFrm.length; i++) 
						{
							fldObj = theFrm.elements[i];
							var fieldnamecheck=fldObj.name.indexOf(name);
							if (fieldnamecheck != -1) {
								if (fldObj.checked) {
									return true;
								}
							}
						}
						return false;
					}
	
	
					function CheckSS()
					{
						theFrm = document.frmSS;
	
						hasDot = theFrm.Email.value.indexOf(".");
						hasAt = theFrm.Email.value.indexOf("@");
						
						if (hasDot == -1 || hasAt == -1)
						{
							alert("Please enter a valid email address.");
							theFrm.Email.focus();
							theFrm.Email.select();
							return false;
						}
	
						
						return true;
					}
			
		
	function emailFocus(){
		if ($('emailSignup').value=="Your Email Address"){
			$('emailSignup').value = '';
		}
	}
	
	function emailBlur(){
		if (Trim($('emailSignup').value) == ""){
			$('emailSignup').value = 'Your Email Address';
		}
		
	}
	
	function trim(str){
	   return str.replace(/^\s*|\s*$/g,"");
	}
	
	/*function initHighlight(normClass, overClass) {
		
		if (!document.getElementsByTagName){ return; }
		var allfields = document.getElementsByTagName("input");
		allfields =+ document.getElementsByTagName("textarea");
	
		// loop through all input tags and add events
		for (var i=0; i<allfields.length; i++){
			var field = allfields[i];
			if ((field.getAttribute("type") == "text") || (field.getAttribute("type") == "password") || field.getAttribute("") ) {
				if (field.className == normClass){
				field.onfocus = function () {this.className = overClass;}
				field.onblur = function () {this.className = normClass;}
				}
			}
		}
	}*/
	
	function initHighlight(normClass, overClass) {
		
		if (!document.getElementsByTagName){ return; }
		//var allfields = document.getElementsByTagName("input");
		//allfields =+ document.getElementsByTagName("textarea");
		var allfields = getElementsByClassName(document, "*", normClass);
		
		// loop through all input tags and add events
		for (var i=0; i<allfields.length; i++){
			var field = allfields[i];
			//if ((field.getAttribute("type") == "text") || (field.getAttribute("type") == "password") || field.getAttribute("") ) {
				//if (field.className == normClass){
				field.onfocus = function () {this.className = overClass;
				 if ($('touched')){
					 $('touched').value=1;
				 }
				}
				field.onblur = function () {this.className = normClass;}
				//}
			//}
		}
	}
	// ==================================================
	// GetElementsByClassName
	// http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
	/* 
	- To get all a elements in the document with a “info-links” class.
		getElementsByClassName(document, "a", "info-links");
	- To get all div elements within the element named “container”, with a “col” and a “left” class.
   		getElementsByClassName(document.getElementById("container"), "div", ["col", "left"]);
	- To get all elements within in the document with a “click-me” class.
    	getElementsByClassName(document, "*", "click-me");
	*/
	function getElementsByClassName(oElm, strTagName, oClassNames){
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		var arrRegExpClassNames = new Array();
		if(typeof oClassNames == "object"){
			for(var i=0; i<oClassNames.length; i++){
				arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
			}
		}
		else{
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
		}
		var oElement;
		var bMatchesAll;
		for(var j=0; j<arrElements.length; j++){
			oElement = arrElements[j];
			bMatchesAll = true;
			for(var k=0; k<arrRegExpClassNames.length; k++){
				if(!arrRegExpClassNames[k].test(oElement.className)){
					bMatchesAll = false;
					break;                      
				}
			}
			if(bMatchesAll){
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements)
	}
			

		
	
	