/*
	REC TEC LIVE, Inc.
	
	designer: Nathan Edwards
	type: Javascript
	file: main.js
	purpose: Main javascript controls
*/



/*
	REC TEC YELLOW: #f5c123
*/



/////////////////////////////////////////
//---------- GLOBAL VARABLES ----------//
/////////////////////////////////////////
test = 0;
uploadlock = 0;

//IE6 SUCKS! Adjust layout
var version = navigator.userAgent;
var findIE6 = version.indexOf('MSIE 6');
var findIE7 = version.indexOf('MSIE 7');
var findSafari = version.indexOf('Safari');
var findiPhone = version.indexOf('iPhone');

//var sideBarImage = new Image;
//sideBarImage.src = 'imgs/sideBars.png';
//var bottomBarImage = new Image;
//bottomBarImage.src = 'imgs/footer.png';


/////////////////////////////////////////
//------------- FUNCTIONS -------------//
/////////////////////////////////////////

//---------------|CHANGE DIV PROPERTIES
/*STUPID STUPID STUPID IE...work around for lack of
	css div hover capabilities in IE
*/
function changeColor(what,color) {
	what.style.backgroundColor = color;
}
function divLink(what,color) {
	what.style.color = color;
	what.style.cursor = 'pointer';
}


//---------------|CLEAR FOCUSED TEXTBOX
function clearBox(whichbox) {
	if(whichbox.defaultValue == whichbox.value) 
		whichbox.value = "";
}

//---------------|TOGGLE HIDE AND SHOW
function divToggle(id) {
	div = document.getElementById(id);
	if(div.style.visibility != 'visible')
	{
		div.style.visibility = 'visible';
	}else
	{
		div.style.visibility = 'hidden';	
	}
}


//---------------|LINK TO SOMEWHERE ELSE
function link(sendmehere){
	 window.location=sendmehere;
}

//---------------|SUCKERFISH MENU
/*code provided by Suckerfish (patrick griffiths & dan webb*/
sfHover = function() {
	var sfEls = document.getElementById("menuDiv").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
sfAdminHover = function() {
	var sfEls = document.getElementById("adminMenuDiv").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
//if (window.attachEvent) window.attachEvent("onload", sfAdminHover);


//---------------|CHANGE DIVD OPACITY WITH SEVERAL BROWSERS IN MIND
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity);
    object.MozOpacity = (opacity);
    object.KhtmlOpacity = (opacity);
    object.filter = "alpha(opacity=" + opacity*100 + ")";
}




/////////////////////////////////////////
//---------------- AJAX ---------------//
/////////////////////////////////////////


//---------------|AJAX CALL
function ajaxMe(loc) {
	try {xmlhttp = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");}
 	catch (e) { /* catch errors-->do nothing */ }
 	xmlhttp.onreadystatechange = ajaxReturn;
	xmlhttp.open("POST", URL + 'ajax/' + loc);
	xmlhttp.send(null);
}



//---------------|AJAX RETURN
function ajaxReturn() {
  if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)){
	  //alert(xmlhttp.responseText);
  	var response = xmlhttp.responseText.split("~|~");
	if(response.length > 1)
	{
	    document.getElementById(response[0]).innerHTML =  response[1];
		document.getElementById(response[0]).style.visibility = 'visible';
	}
	
	//STUPID EXEPTIONS FOR FOCUS
	switch(response[0])
	{
		case 'tagOptions':
			document.tagForm.tagtext.focus();
			var myoptions = {
				script:URL + "ajax/photoTagSuggest.php?json=true&limit=4&",
				varname:"input",
				json:true,
				shownoresults:false,
				maxresults:4,
				delay:100,
				timeout: 5000,
				offsety: 5
			};
			var tagtextsuggest = new bsn.AutoSuggest('tagtext', myoptions);
			break;
		
		case 'subcat':
			document.gear.subcat.value = subCatUpdate;
			break;
	}
  }
}

//---------------|AJAX CLOSE & EMPTY DIV
function divClose(divId)
{
	 document.getElementById(divId).style.visibility = 'hidden';
	 document.getElementById(divId).innerHTML = '';	
}





/////////////////////////////////////////
//------------ POSITIONING ------------//
/////////////////////////////////////////


//---------------|GET OBJECT POSITION
function elementX(obj)
{
	
	var left = obj.offsetLeft;
	if(findIE6 > 0 || findIE7 > 0)		//if it's IE6 or IE7
		left -= parseInt(getStyle(obj, 'borderLeftWidth', 'border-left-width')) - parseInt(getStyle(obj, 'marginLeft', 'margin-left'));	//subtract border of table tags
	
	var op = obj.offsetParent;
	while(obj.parentNode && document.body != obj.parentNode){
		obj = obj.parentNode;
	
		if(op == obj)
		{
			left += obj.offsetLeft;
			if(findIE6 > 0 || findIE7 > 0)
				left -= parseInt(getStyle(obj, 'borderLeftWidth', 'border-left-width')) - parseInt(getStyle(obj, 'marginLeft', 'margin-left'));	//subtract border of table tags
			op = obj.offsetParent;
		}
	}
return left;
}

function elementY(obj)
{
	var top = obj.offsetTop;

	if(findIE6 > 0 || findIE7 > 0)
		top -= parseInt(getStyle(obj, 'borderTopWidth', 'border-top-width')) - parseInt(getStyle(obj, 'marginTop', 'margin-top'));	//subtract border of table tags
	
	var op = obj.offsetParent;
	while(obj.parentNode && document.body != obj.parentNode){
		obj = obj.parentNode;

		if(op == obj)
		{
			top += obj.offsetTop;
			if(findIE6 > 0 || findIE7 > 0)
				top -= parseInt(getStyle(obj, 'borderTopWidth', 'border-top-width')) - parseInt(getStyle(obj, 'marginTop', 'margin-top'));	//subtract border of table tags
			op = obj.offsetParent;
		}
	}
	return top;
}

//---------------|GET MOUSE POSITION
function mouseLocX(evt)
{
	if(!evt) evt = document.event;
	if (evt.pageX) return evt.pageX;
	else if (evt.clientX)
	  return (evt.clientX + (document.documentElement.scrollLeft||document.body.scrollLeft));
	else return null;
}

function mouseLocY(evt)
{
	if(!evt) evt = document.event;
	if (evt.pageY) return evt.pageY;
	else if (evt.clientY)
	   return (evt.clientY + (document.documentElement.scrollTop||document.body.scrollTop));
	else return null;
}

//---------------|GET OBJ STYLE
function getStyle(el,IEstyle, otherStyle)
{
	if (el.currentStyle)
		var itemStyle =  el.currentStyle[IEstyle];
	else if (window.getComputedStyle)
		var itemStyle = document.defaultView.getComputedStyle(el,'').getPropertyValue(otherStyle);
	//alert(el.tagName + itemStyle);
	if(itemStyle == 'auto') itemStyle = '0px';
	return itemStyle;
}
