var xmlreqs = new Array();
function CXMLReq(type, element, xmlhttp) {
	this.type = type;
	this.element = element;
	this.xmlhttp = xmlhttp;
}
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// cope with old IE versions
  try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   try {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (E) {
    xmlhttp = false;
   }
  }
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
}
function make_window(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open('<?=$settings['site']['base_URI']?>/products/<?=$_GET['name']?>/' + URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=800,height=600,left = 240,top = 212');");
}
function display_specs(prod_id) {
	var element = document.getElementById('products_specs');
	element.innerHTML = 'Loading ...';
	xmlhttp.open("GET", site_url+"/engine/return_xml.php?db_table=products&column=prod_specs&id_name=prod_id&id=" + prod_id, true);
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		element.innerHTML = '<p>' + xmlhttp.responseText + '<\/p>';
		}
	}
	xmlhttp.send(null);
}
function product_color_update(pic_id) {
	var element = document.getElementById('product_image_js');
	//element.innerHTML = 'Loading ...';
	var xmlhttp_2=false;
	if (window.XMLHttpRequest) { // Mozilla etc.
		xmlhttp_2=new XMLHttpRequest();
		xmlhttp_2.onreadystatechange = xmlhttpChange;
		xmlhttp_2.open("GET", site_url+"/engine/return_xml.php?db_table=gallery_of_colors&column=image&id_name=pic_id&id=" + pic_id, true)
		xmlhttp_2.send(null);
	} else if (window.ActiveXObject) { // IE
		xmlhttp_2 = new ActiveXObject("Microsoft.XMLHTTP");
		if (xmlhttp) {
		xmlhttp_2.onreadystatechange = xmlhttpChange;
		xmlhttp_2.open("GET", site_url+"/engine/return_xml.php?db_table=gallery_of_colors&column=image&id_name=pic_id&id=" + pic_id, true);
		xmlhttp_2.send(null);
		}
	}
	
	var xmlreq = new CXMLReq("element", element, xmlhttp_2);
	xmlreqs.push(xmlreq);
}
function product_color_original(pic_id) {
	var element = document.getElementById('product_image_js');
	//element.innerHTML = 'Loading ...';
	var xmlhttp_2=false;
	if (window.XMLHttpRequest) { // Mozilla etc.
		xmlhttp_2=new XMLHttpRequest();
		xmlhttp_2.onreadystatechange = xmlhttpChange;
		xmlhttp_2.open("GET", site_url+"/engine/return_xml.php?db_table=products&column=prod_pic&id_name=prod_id&id=" + pic_id, true)
		xmlhttp_2.send(null);
	} else if (window.ActiveXObject) { // IE
		xmlhttp_2 = new ActiveXObject("Microsoft.XMLHTTP");
		if (xmlhttp) {
		xmlhttp_2.onreadystatechange = xmlhttpChange;
		xmlhttp_2.open("GET", site_url+"/engine/return_xml.php?db_table=products&column=prod_pic&id_name=prod_id&id=" + pic_id, true);
		xmlhttp_2.send(null);
		}
	}
	
	var xmlreq = new CXMLReq("element", element, xmlhttp_2);
	xmlreqs.push(xmlreq);
}
function product_image_update(type_id, pic_id) {
	var element = document.getElementById('product_image_js');
	element.innerHTML = 'Loading ...';
	if(type_id == 1) {
	xmlhttp.open("GET", site_url+"/engine/return_xml.php?db_table=gallery&column=image&id_name=pic_id&id=" + pic_id, true);
	}
	if(type_id == 2) {
	//xmlhttp.open("GET", site_url+"/engine/return_xml.php?db_table=products&column=prod_pic&id_name=prod_id&id=" + pic_id, true);
	xmlhttp.open("GET", site_url+"/image/1/" + pic_id, false);
	}
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		element.innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(null);
}
function classChange(tag,clas,styleProp,styleValue) { // args[1] named 'clas' b/c 'class' is reserved
	for (i=0;i<document.getElementsByTagName(tag).length; i++) {
		if (document.getElementsByTagName(tag).item(i).className == clas){
			eval('document.getElementsByTagName(tag).item(i).' + styleProp + ' = "' + styleValue + '"');
		}
	}
}
function update_products_panel(page, series_id) {
	var element = document.getElementById('products_panel');
	classChange('span', 'title', 'innerHTML', 'Select a Product');
	xmlhttp.open("GET", site_url+"/engine/return_xml.php?db_table=products&column=%2A&id_name=series_id&id=" + series_id + "&order_by=prod_name&sort=asc&location=" + page, true);
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		element.innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(null);
}
function get_help(page, form) {
	var element = document.getElementById('body'); //downloads_main
	if(form == undefined) {
		//classChange('span', 'downloads_main', 'innerHTML', "<div id='downloads_search'><form name='downloads_lookup' action='javascript:get_help(this.value);'>Enter product name: <input type='text' name='search_str'> <input name='submit' value='Search' type='submit'></form></div>");
		element.innerHTML = "<form name='downloads_lookup' action='javascript:;' onsubmit='javascript:get_help(\""+page+"\", this);'>Enter product name: <input type='text' name='search_str'> <input name='submit' value='Search' type='submit'></form><br /><span class='search_str'></span>";
	} else {
		classChange('span', 'search_str', 'innerHTML', 'Searching...');
		xmlhttp.open("GET", site_url+"/engine/return_xml.php?db_table=products&column=%2A&id_name=prod_name&id=" + form.search_str.value + "&location=" + page, true);
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			classChange('span', 'search_str', 'innerHTML', xmlhttp.responseText);
			}
		}
		xmlhttp.send(null);
	}
}
function new_category() {
	var element = document.getElementById('products_panel');
	var new_element = document.getElementById('products_panel_cache');
	classChange('span', 'title', 'innerHTML', 'Select a Category');
	element.innerHTML = new_element.innerHTML;
	element.style.display = 'block';
}
function reviews_go_back() {
	var element = document.getElementById('reviews');
	element.innerHTML = '<div id="news"><p><form method="post" action=""><select name="select" size="5" onchange="update_Second_Tab(this.value);" style="width: 45%;"><option value="1">Classic Series</option><option value="2">Crafted Series</option><option value="3">Power Supplies</option></select><select name="products" size="5" style="width: 45%;" onchange="javascript:get_reviews(this.value);"><option><-- Please Select a Product Line</option></select></form></p></div>';
}
function submit_newsletter(form) {
	var element = document.getElementById('newsletter');
	if(form.email.value == "") {
		classChange('span', 'newsletter_error', 'innerHTML', "Please enter an e-mail address!");
	} else {
		classChange('span', 'newsletter_error', 'innerHTML', "");
		
		var poststr = "email=" + encodeURI( document.getElementById("email").value ) ;
		xmlhttp.open("POST", "/engine/newsletter.php", true);
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				element.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", poststr.length);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.send(poststr);
	}
}
/* THREAD ALL XMLHTTP REQ OBJ'S */
function xmlhttpChange() {
	if (typeof(window['xmlreqs']) == "undefined") return;
	
	for (var i=0; i < xmlreqs.length; i++) {
		if (xmlreqs[i].xmlhttp.readyState == 4) {
			if (xmlreqs[i].xmlhttp.status == 200 || xmlreqs[i].xmlhttp.status == 304) {
			
				switch(xmlreqs[i].type)
				{
				case 'element':
				  xmlreqs[i].element.innerHTML = xmlreqs[i].xmlhttp.responseText;
				  break;
				case 'form':
				  xmlreqs[i].element.value = xmlreqs[i].xmlhttp.responseText;
				  break;
				case 'selection':
				  for ( var x = 0; x < xmlreqs[i].element.length; x++) {
				  	if (xmlreqs[i].element.options[x].value == xmlreqs[i].xmlhttp.responseText) {
						xmlreqs[i].element.options[x].selected = true;
					}
				  }
				  break;
				case 'checkbox':
				  if (xmlreqs[i].xmlhttp.responseText == "true") {
					xmlreqs[i].element.checked = true ;
				  } else {
					xmlreqs[i].element.checked = false ;
				  }
				  break;
				 case 'eval':
				    eval(xmlreqs[i].xmlhttp.responseText);
				 break;
				}
				xmlreqs.splice(i,1); i--;
			} else {
				xmlreqs.splice(i,1); i--;
			}
		}
	}
}
/* PUT A TARGET="_BLANK" IN ALL LINKS WITH REL="EXTERNAL" */
function externalLinks() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") &&
		anchor.getAttribute("rel") == "external")
		anchor.target = "_blank";
	}
}

hover = function() {
	var gbk = Array();
	var els = document.getElementById("navigation").getElementsByTagName("li");

	if(navigator.appVersion.indexOf("MSIE") != -1){
	var b = navigator.appVersion.split("MSIE");
	b = parseFloat(b[1]);
	}
	
	for (var i=0; i<els.length; i++) {
		if(els[i].getElementsByTagName("ul").length > 1) gbk.push(els[i]);
		els[i].onmouseover=function() {
			this.className="hover";
		}
		els[i].onmouseout=function() {
			if(b == 6) {
				this.className="";
			} else {
				var tmp = this;
				setTimeout(function(){tmp.className="";}, 1000);
			}
		}

	}

	//return to nav items with more than one level and erase onmouseout settimeout
	for (var j=0; j<gbk.length; j++) {
		var el = gbk[j].getElementsByTagName("ul");
		for(var k=0; k<el.length; k++) {
			var e = el[k].getElementsByTagName("li");
			for(var l=0; l<e.length; l++) {
				e[l].onmouseout=function() {this.className="";};
			}
		}
	}

}

doLoad = function() {
	hover();
	externalLinks();
}

//if (window.attachEvent) window.attachEvent("onload", doLoad);
window.onload = doLoad;