/*
	JAVASCRIPT FUNCTION INCLUDE
	Tomspoolery.com	
	01.19.10
	Rebecca Adamson
	River City Studio
*/

var d = window.document;


//////////////////////////////////////
//  GENERIC RETURN ELEMENT FUNCTION //
//////////////////////////////////////

function getE( v ) {
  // e is for element!
  e = false;
  
  if ( d.getElementById ) {
    e = d.getElementById( v );
  }
  else if ( d.all ) {
    e = d.all[ v ];
  }

  return e;
}

function flipCat() {
	e = getE( "cats" );
	e.submit();
}


/*
	AJAX BASE FUNCTIONALITY
*/

function GetXmlHttpObject( url,func ) {
  xmlHttp=null;
	nextFunc = "";

		if ( func != false ) nextFunc = func;
	else nextFunc = "";

  try { xmlHttp=new XMLHttpRequest(); } // Firefox, Opera 8.0+, Safari 
  catch (e) {
    // Internet Explorer
    try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
    catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
  }
  
  if (xmlHttp!=null) {
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);
		//set request header to later determine if any file was requested with Ajax or not - in case we want to include/exclude code fragments, like headers and footers on error handling,for instance
		xmlHttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    xmlHttp.send(null);
  }  
}

function stateChanged( ) {
  if (xmlHttp.readyState==4) {
		if (xmlHttp.status==200) {
			if( xmlHttp.responseText.indexOf("error.php") != -1 ) {
				//if the error handler was triggered, redirect to error.php
				// if triggered via ajax, error.php rewrites the querystring and prints it, which becomes the responseText
				location.href=xmlHttp.responseText;
			}
					
			else {
				document.getElementById(div).innerHTML=xmlHttp.responseText;
			}
	
			if ( nextFunc != "" ) {
				eval( nextFunc );
			}
		}
  }
}

/*  BETA REGISTRATION FUNCTIONS  */

function registerBeta(submitted,email,divElem ) {

	div = divElem;
	e = getE( divElem );
	e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif' />";
	var url="/forms/registerBeta.php";
	url=url+"?email="+email;
	url=url+"&div="+div;
	url=url+"&s="+submitted;
	url=url+"&sid="+Math.random();

// 	alert(url);
  
  GetXmlHttpObject( url );
}


/*  ACCOUNT CREATION FUNCTIONS  */

function registerAccount(submitted,email,pw,divElem ) {
	div = divElem;
	e = getE( divElem );
	e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif' />";
	var url="/forms/registerAccount.php";
	url=url+"?email="+email;
	url=url+"&div="+div;
   url=url+"&pw="+pw;
   url=url+"&s="+submitted;
	url=url+"&sid="+Math.random();

// 	alert( url );
  
  GetXmlHttpObject( url );
}


// function login(submitted,email,password,divElem) {
//   div = divElem;
//   e = getE( divElem );
//   e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif' />";
//   var url="/forms/login.php";
//   url=url+"?s="+submitted;
//   url=url+"&email="+email;
//   url=url+"&password="+password;
//   url=url+"&div="+div;
//   url=url+"&sid="+Math.random();
//   
//   GetXmlHttpObject( url );
// }


function showForm(table, divElem, fields, values, id, note) {
  e = document.getElementById( divElem );
  newHTML = "<form method='POST'>"

	v = ""
	f= ""

	switch (values.length ) {
		case 0: v = new Array();break;
		case 1: v = values;break;
		default: v = values.split(",");
	}

	switch (fields.length ) {
		case 0: f = new Array();break;
		case 1: f = fields;break;
		default: f = fields.split(",");
	}

	for( i=0;i<f.length;i++) {
		if( v.length == 0 ){
			thisValue = "";
		}
		else {
			thisValue = v[i]
		}

		if( f[i].indexOf("ID") != -1  )
			newHTML += "<p><input type='hidden' name='" + f[i] + "' value='" + thisValue + "' size='12'/></p>"
		else
			newHTML += "<p>*" + f[i] + " <input type='text' name='" + f[i] + "' value='" + thisValue + "' size='12'/></p>"
	} // end for

	newHTML += "<input type='submit' value='Save' /></p>"
	newHTML += "<input type='hidden' name='table' value=" + table + " />"
	newHTML += "<h5>" + note + "</h5>"

	if( values.length == 0 ) {
		newHTML += "<input type='hidden' name='action' value='addData' />"
	}
	else {
		newHTML += "<input type='hidden' name='action' value='editData' />"
	}
	newHTML += "</form>"
	
	
	e.innerHTML = newHTML;
  
} 

function showOptions(formatID, divElem) {
  div = divElem;

	var url="getOptions.php";
  url=url+"?formatID="+formatID;
	url=url+"&div="+div;
  url=url+"&sid="+Math.random();

  GetXmlHttpObject( url );
  
} 

function addBrowse( divElem, num ) {
  e = document.getElementById( divElem );
	
	newHTML = "";
	for( i=1;i<=num;i++ ) {
  	newHTML += "<input type='file' name='ImageFileName_"+i+"' />"
	}

	e.innerHTML = newHTML;
  
}

function showAccountForm( divElem) {
  div = divElem;

	var url="getFormFields.php";
	url=url+"?div="+div;
	url=url+"&sid="+Math.random();

	GetXmlHttpObject( url );

} 

function showPasswordForm( divElem) {
  div = divElem;

	var url="getPWForm.php";
	url=url+"?div="+div;
	url=url+"&sid="+Math.random();

	GetXmlHttpObject( url );

} 




/////
//	FOR DETERMING WHICH DIV IS CURRENTLY OPEN

var openDiv = "";

////////////////////////////////
//	CLOSE A DIV								//
////////////////////////////////

function closeDiv( div ) {
	e = getE( div );
	e.innerHTML = "";
}

//////////////////////////////////
//	GET A CUSTOMER'S FULL INFO	//
//////////////////////////////////

function getCustomerInfo( id ) {
	if ( openDiv.length ) closeDiv( openDiv );
	div = "cust_" + id;
	if ( openDiv != div ) {
		displayDiv = div;
		e = getE( div );
		e.innerHTML = "<div class='box'>Loading...</div>";
		getPage( "getCustomerInfo.php?id=" + id );
		openDiv = div;
	}
	else openDiv = "";
}




function imgSwap(img_name, img_src)
{
	getE(img_name).src = img_src;
}





/*
	PAGE ORDERING FUNCTIONS
*/


/////
//	FOR DETERMINING WHICH PAGE, IF ANY, HAS BEEN SELECTED
var selectedPage = false;
////////////////////////////////
//	REDRAW PAGE LIST FOR SUB	//
//	PAGE ORDERING							//
////////////////////////////////
function redrawPageList() {
	e = getE( "pageList" );
	e.innerHTML = "";
	for ( i=1, j=pages.length; i<j; i++ ) {
		var classStr = "";
		if ( selectedPage == i ) classStr = " class='selected'";
		s = "\n		<div style='border:thin black solid;width:120px;float:left;padding:5px;margin:1px;' onclick='selectPage( " + i + " );return false;'" + classStr + "><a href='#'>" + pageTitles[pages[i]] + "</a></div>";
		e.innerHTML+= s;
	}
}
////////////////////////////////
//	SELECT A PAGE TO MOVE			//
////////////////////////////////
function selectPage( i ) {
	
	if ( !selectedPage || selectedPage != i ) {
		selectedPage = i;	
	}
	else {
		selectedPage = false;
	}
	redrawPageList();
}
////////////////////////////////
//	MOVE A PAGE UP						//
////////////////////////////////
function up() {
	i = selectedPage;
	
	if ( i && i != 1 ) {
		p1 = pages[i];
		p2 = pages[i-1];
		
		pages[i-1] = p1;
		pages[i] = p2;
		
		selectedPage = i-1;
		redrawPageList();
	}
}
////////////////////////////////
//	MOVE A PAGE DOWN					//
////////////////////////////////
function down() {
	i = selectedPage;
	
	if ( i  && i != ( pages.length-1 ) ) {
		p1 = pages[i];
		p2 = pages[i+1];
		
		pages[i] = p2;
		pages[i+1] = p1;
		
		selectedPage = i+1;
		redrawPageList();
	}
}
////////////////////////////////
//	SAVE THE PAGE ORDER				//
////////////////////////////////
function savePages() {
	s = '';
	for ( i=1, j=pages.length; i<j; i++ ) {
		s+= pages[i] + "|" + i;
		if ( i < j-1 ) s+= "||";
	}

	d.forms['reorder'].pages.value = s;
	d.forms['reorder'].submit();
}







/*
	IMAGE GALLERY ORDERING FUNCTIONS
*/

/////
//	FOR DETERMINING WHICH CLASS, IF ANY, HAS BEEN SELECTED
var selectedImage = false;
////////////////////////////////
//	REDRAW IMAGE LIST FOR 
// IMAGE ORDERING	
////////////////////////////////
function redrawImageList() {
	e = getE( "imageList" );
	e.innerHTML = "";
	for ( i=0, j=imageArray.length; i<j; i++ ) {
		var pic = "";
		if ( selectedImage === i ) pic = " class='selected'";
		s = "\n		<p><a href='#'" + pic + " onclick='selectImage( " + i + " ); return false;'><img src='/_imgContent/thumb/" + urls[imageArray[i]] + "' alt='' /></a></p>";
		e.innerHTML+= s;
	}
}

////////////////////////////////
//	SELECT AN IMAGE TO MOVE			//
////////////////////////////////
function selectImage( i ) {
	
	if ( !selectedImage || selectedImage != i ) {
		selectedImage = i;	
	}
	else {
		selectedImage = false;
	}
	redrawImageList();
	
}


////////////////////////////////
//	MOVE AN IMAGE UP						//
////////////////////////////////
function upImage() {
	i = selectedImage;
	
	if ( i != 0 ) {
		ia1 = imageArray[i];
		ia2 = imageArray[i-1];
		
		imageArray[i-1] = ia1;
		imageArray[i] = ia2;
		
		selectedImage = i-1;
		redrawImageList();
	}
}
////////////////////////////////
//	MOVE AN IMAGE DOWN					//
////////////////////////////////
function downImage() {
	i = selectedImage;
	
	if ( i != ( imageArray.length-1 ) ) {
		ia1 = imageArray[i];
		ia2 = imageArray[i+1];
		
		imageArray[i] = ia2;
		imageArray[i+1] = ia1;
		
		selectedImage = i+1;
		redrawImageList();
	}
}
////////////////////////////////
//	SAVE THE IMAGE ORDER				//
////////////////////////////////
function saveImages() {
	s = "";
	for ( i=0, j=imageArray.length; i<j; i++ ) {
		s+= imageArray[i] + "|" + i;
		if ( i < j-1 ) s+= "||";
	}
	d.forms[1].imageOrder.value = s;
//	alert(d.forms[1].imageOrder.value);
	d.forms[1].submit();
}




function removeElementById(remele) 
{
	remele = getE(remele);
	if (remele.parentNode && remele.parentNode.removeChild) 
	{
		remele.parentNode.removeChild(remele); 
	}
}


////////////////////////////////
//  SHOW / HIDE ELEMENT       //
////////////////////////////////

function toggleV(incoming_object_name,visibility) 
{
	g = getE(incoming_object_name);
//    alert(g.style.visibility);
   if( g.style.visibility == "visible")
	 g.style.visibility = "hidden";
	else
	 g.style.visibility = "visible";
// 	g.style.visibility = visibility;

  /*string = "";
  for ( a in g ) {
    string += a + "\n";
  } 
  alert( string );
  */		
}


/////////////////////////////////////
//  DISABLE / ENABLE FORM ELEMENT  //
/////////////////////////////////////

function toggleD(incoming_object_name,enable_status) 
{
	e = getE(incoming_object_name);
	e.disabled=enable_status
	
	/*
	if (enable_status == false) // enable 
		e.disabled=false;
	if (enable_status == true ) //disable
		e.disabled=true;
	*/
}



///////////////////////////////
// RADIO CHECKED VALUES      //
///////////////////////////////

function setCheckedValue(radioObj, newValue) 
{
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) 
	{
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++)
	{
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) 
		{
			radioObj[i].checked = true;
		}
	}
}
function getCheckedValue(radioObj)
{
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) 
	{
		if(radioObj[i].checked) 
		{
			return radioObj[i].value;
		}
	}
	return "";
}


//////////////////////////////
// SELECT LIST VALUES       //
//////////////////////////////

function setSelectListVal(selectID,setVal) 
{
	sel = getE(selectID);
	for (i=0; i<sel.options.length; i++) 
		if (sel.options[i].text == setVal)
			sel.selectedIndex = i;
}

function getSelectListVal(selectID)
{
	sel = getE(selectID);
	index = sel.selectedIndex;
	return sel[index].value;
}

function getSelectListText(selectID)
{
	sel = getE(selectID);
	index = sel.selectedIndex;
	return sel[index].text;
}

function showHide(elem,display) {
	//alert('hello?');
	e = document.getElementById(elem);
	e.style.visibility = display;
	}
	

	/* ----------------------- General Click Function For Div Buttons ----------------------------- */
	
function gotoTarget( incomingUrl ) {
	window.location = incomingUrl;
}

/* ----------------------- Video on home page ----------------------------- */

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
