/*
	JAVASCRIPT FUNCTION INCLUDE
	Tomspoolery.com
	01.19.10
	Rebecca Adamson
	River City Studio
*/

var rcsDoc = window.document;


//////////////////////////////////////
//	GENERIC RETURN ELEMENT FUNCTION //
//////////////////////////////////////

function getE( v ) {
	// e is for element!
	e = false;
	if ( rcsDoc.getElementById ) {
		e = rcsDoc.getElementById( v );
	}
	else if ( rcsDoc.all ) {
		e = rcsDoc.all[ v ];
	}
	return e;
}

function flipCat() {
	e = getE( "cats" );
	e.submit();
}


/*
  BAR BUTTON POPUP ( on About Us )
*/

var aboutUsPop = "<div id='newsBoxx' style='border:1px solid silver;position: absolute; top: -150px; left: 0px; width: 500px; height: 350px;text-align:left'><div id='newsContent' style='width: 480px; height: 310px;'><p>All CIRQ auditors are experienced research professionals and therefore bring to the role of auditor relevant and varied research expertise. Collectively these professionals have nearly 175 years of experience in senior-level positions in research management, project operations, and sales or client services.  CIRQ auditors are knowledgeable in both qualitative and quantitative research, have worked on both the client and supplier side of the business, have worked in both small and large companies and some have owned and operated their own research businesses.</p><p>This wealth of industry experience, coupled with an intense CIRQ training program that culminates with a comprehensive assessment that each auditor must pass, makes CIRQ auditors uniquely positioned to execute audits for any research company seeking certification to ISO 20252 and/or ISO 26362.</p><p><a href='#' style='font-weight: bold;' onclick='barBtnPop( \"barBtnTxt\", \"\", false ); return false;'>Close</a></p></div></div>";

function barBtnPop( div, txt, state ) {
    e = getE( div );
    if ( state ) {
        e.innerHTML = txt;
    }
    else {
        e.innerHTML = "";
    }
}

function makeWYSIWYG(incomingWidth, incomingHeight) {

	if(!incomingWidth) {
		 incomingWidth = 490;
	}

	if(!incomingHeight) {
		 incomingHeight = 350;
	}

	tinyMCE.init({
		mode : "textareas",
		theme : "advanced",
		width : incomingWidth,
		height : incomingHeight,
		plugins : "media,table,safari,spellchecker",
		content_css : "/_css/tiny.css",
		file_browser_callback : "tinyBrowser",
		relative_urls : false,
		force_p_newlines : true,
		force_br_newlines : true,

		theme_advanced_toolbar_location : "bottom",
		theme_advanced_statusbar_location : "bottom",
		theme_advanced_buttons2_add : "media,spellchecker",

		theme_advanced_buttons3 : "tablecontrols",
		table_styles : "Header 1=header1;Header 2=header2;Header 3=header3",
		table_cell_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Cell=tableCel1",
		table_row_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1",
		table_cell_limit : 100,
		table_row_limit : 5,
		table_col_limit : 5
	});
}

/*
	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 );
}

/*	REQUEST PASSWORD FUNCTIONS	*/

function requestPW(submitted,email,divElem ) {

	div = divElem;
	e = getE( divElem );
	e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif' />";
	var url="/forms/requestPW.php";
	url=url+"?email="+email;
	url=url+"&div="+div;
	url=url+"&s="+submitted;
	url=url+"&sid="+Math.random();

  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();

  GetXmlHttpObject( url );
}

function chooseUsername(submitted,username,divElem) {
	div = divElem;
	e = getE( divElem );
	e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif' />";
	var url="/forms/chooseUsername.php";
	url=url+"?username="+username;
	url=url+"&s="+submitted;
	url=url+"&div="+div;
	url=url+"&sid="+Math.random();

	GetXmlHttpObject( url );
}

function checkUsernameAvailability(str,divElem) {
	div = divElem;
	e = getE( divElem );
	e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif' />";
	if (str.length < 2) {
		document.getElementById(div).innerHTML="";
		return;
	}

	var url="checkUsernameAvailability.php";
	url=url+"?str="+str;
	url=url+"&sid="+Math.random();

	GetXmlHttpObject( url );
}


/*	GENERIC FUNCTIONS  */

function del( table, idField, id, divElem) {

	div = divElem;
	e = getE( divElem );
	e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif' />";
	var url="/admin/delete.php";
	url=url+"?table="+table;
	url=url+"&idField="+idField;
	url=url+"&id="+id;
	url=url+"&div="+div;
	url=url+"&sid="+Math.random();

	GetXmlHttpObject( url );
}


function showForm(submitted,divElem,label,val) {
	div = divElem;
	e = getE( divElem );
	e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif' />";

	var url="/forms/updateMember.php";
	url=url+"?field="+divElem;
	url=url+"&value="+val;
	url=url+"&s="+submitted;
	url=url+"&label="+escape(label);
	url=url+"&div="+div;
	url=url+"&sid="+Math.random();

	GetXmlHttpObject( url );
}

function addToStash(itemType,id,divElem) {
	div = divElem;
	e = getE( divElem );
// 	e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif'/>";

	var url="/my-account/spool/addToStash.php";
	url=url+"?id="+id;
	url=url+"&type="+itemType;
	url=url+"&div="+div;
	url=url+"&sid="+Math.random();

	GetXmlHttpObject( url );
}

function deleteFromStash(id,divElem) {
	div = divElem;
	e = getE( divElem );
// 	e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif'/>";

	var url="/my-account/spool/deleteFromStash.php";
	url=url+"?stashID="+id;
	url=url+"&div="+div;
	url=url+"&sid="+Math.random();

// 	alert(url);

	GetXmlHttpObject( url );
}


function createPopUp( ) {

//	 var div = document.createElement("div");
//	 div.className = "popUpForm";
//	 div.innerHTML = "<div class='popUpForm'><iframe src='/forms/login.php'></iframe><br />Hello</div>";
//	 document.body.appendChild(div.firstChild);



// 	 div = divElem;
// 	e = getE( divElem );
// 	e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif' />";

/*	var url="/forms/updateMember.php";
   url=url+"?field="+divElem;
	url=url+"&value="+val;
	url=url+"&s="+submitted;
	url=url+"&label="+escape(label);
   url=url+"&div="+div;
   url=url+"&sid="+Math.random();
   GetXmlHttpObject( url );*/

}



function addItem(fields,divElem ) {

	div = divElem;
	e = getE( divElem );
	e.innerHTML = "<img src='/admin/_img/cms/animatedLoader.gif' />";
	scriptName = divElem;

	var url="/forms/"+divElem + ".php";
	url=url+"?div="+div;

	for( i=0;i<fields.length;i++)
		url += "&" + fields[i].name + "=" + fields[i].value;

	url=url+"&sid="+Math.random();

	GetXmlHttpObject( url );
}

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+= "||";
	}

	rcsDoc.forms['reorder'].pages.value = s;
	rcsDoc.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+= "||";
	}
	rcsDoc.forms[1].imageOrder.value = s;
//	alert(rcsDoc.forms[1].imageOrder.value);
	rcsDoc.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);
	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;
}

/* -------------------------- JavaScript "Pretty" Dropdowns --------------------------------------*/

function selectReplacement(obj) {
	// append a class to the select
	obj.className += ' replaced';
	// create list for styling
	var ul = document.createElement('ul');
	ul.className = 'selectReplacement';
	var opts = obj.options;
	for (var i=0; i<opts.length; i++) {
		var selectedOpt;
		if (opts[i].selected) {
			selectedOpt = i;
			break;
		} else {
			selectedOpt = 0;
		}
	}
	for (var i=0; i<opts.length; i++) {
		var li = document.createElement('li');
		var txt = document.createTextNode(opts[i].text);
		li.appendChild(txt);
		li.selIndex = opts[i].index;
		li.selectID = obj.id;
		li.onclick = function() {
			selectMe(this);
		}
		if (i == selectedOpt) {
			li.className = 'selected';
			li.onclick = function() {
				this.parentNode.className += ' selectOpen';
				this.onclick = function() {
					selectMe(this);
				}
			}
		}
		if (window.attachEvent) {
			li.onmouseover = function() {
				this.className += ' hover';
			}
			li.onmouseout = function() {
				this.className = this.className.replace(new RegExp(" hover\\b"), '');
			}
		}
		ul.appendChild(li);
	}
	// add the input and the ul
	obj.parentNode.appendChild(ul);
	}

	function selectMe(obj) {
		var lis = obj.parentNode.getElementsByTagName('li');
		for (var i=0; i<lis.length; i++) {
			if (lis[i] != obj) { // not the selected list item
			   lis[i].className='';
			   lis[i].onclick = function() {
			   	selectMe(this);
			   }
			} else {
				setVal(obj.selectID, obj.selIndex);
				obj.className='selected';
				obj.parentNode.className = obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
				obj.onclick = function() {
					obj.parentNode.className += ' selectOpen';
					this.onclick = function() {
						selectMe(this);
					}
				}
			}
		}
	}

	function setVal(objID, selIndex) {
		var obj = document.getElementById(objID);
		obj.selectedIndex = selIndex;
	}

	function setForm() {
		var s = document.getElementsByTagName('select');
		for (var i=0; i<s.length; i++) {
			selectReplacement(s[i]);
		}
	}

// 	 function closeSel(obj) {
//		 // close the ul
//	   }



