var OKstate=3;
var wrapper;
var aok;
var sku;


var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();


function detectBrowser()
{
//	var browser=navigator.appName;
//	var b_version=navigator.appVersion;
//	var version=parseFloat(b_version);
	
	alert("Browser name: "+ BrowserDetect.browser);

	alert("Browser version: "+ BrowserDetect.version);
}

function getHTTPObject() {
	var xhr = false;  

//	detectBrowser();
	
	if(BrowserDetect.browser=="Explorer"){OKstate=4;}
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 xhr = new XMLHttpRequest(); 
  } else if (window.ActiveXObject) { // IE
	 try {
		xhr = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   xhr = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			alert("ERROR: Unable to initialize Ajax (ensure you have Javascript enabled)");
			xhr = false;
		}
	 }
  }
//  alert(OKstate);
  if (!xhr) {
	 alert("ERROR: Unable to initialize Ajax (ensure you have Javascript enabled)");//alert('Cannot create XMLHTTP instance');
	 return false;
  }
  return xhr;
}

function grabFile(file) { //GET
	var request = getHTTPObject();
	if (request) {
		request.open("GET", file, true);
		request.onreadystatechange = function() {
			if(request.readyState == OKstate)
			{
				if (request.status == 200 || request.status == 304) {	
					actionResponse(request.responseText);
				}
			}
		}
		request.send(null);
	}
}

function sendData(file, data) { //POST
	var request = getHTTPObject();
//	alert(data);
	if (request) {
		request.open("POST", file, true);
		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		request.onreadystatechange = function() {
			if(request.readyState > 2)
			{
//				if (request.status == 200 || request.status == 304) {		
					actionResponse(request.responseText);
//				}
			}
		}
		request.send(data);
		return true;
	}
	else {
		return false;
	}
}

function actionResponse(response,action) 
{
	var posStart;
	var posEnd;
	var str;
	var divScroll;
	var posScroll;
	
	if(response.substr(0,4) == "<h2>")
	{
		wrapper = document.getElementById("content1");
		wrapper.innerHTML = response;
	}
	else if(response.substr(0,4)=="done")
	{
		divScroll = document.getElementById("totalItems");
		str = "&scrollPos=";
		posStart = response.indexOf(str);
		if(posStart>0)
		{
			posScroll = parseInt(response.substr(posStart + str.length,response.length - (posStart + str.length)));//-55; //-110;
//			if(BrowserDetect.browser=="Explorer"){posScroll -= 5;}	
//			if(posScroll<0){posScroll=0;}
			divScroll.scrollTop = posScroll;
		}
		sku="";
	}	
	else if(response.indexOf("h3 ")>0 && response.indexOf('Qty:')>0 && sku)
	{
		wrapper.innerHTML = response;
					
//		alert("sku2: " + sku);		
		str = '<div id="itemTitle"><a href="' + sku;
//		alert("str: " + str);
		posStart = response.indexOf(str);
		posEnd = response.indexOf('increment=' + sku);
//		alert("start: " + posStart+ "  End: " + posEnd);			
		
		str = response.substr(posStart,posEnd-posStart);
		
		divScroll = document.getElementById("totalItems");
		posStart = str.indexOf('Qty:');		
//		alert("start: " + posStart+ "  End: " + posEnd);	
		if(posStart>0)
		{
			posEnd = str.indexOf('<a class="qtyinc"')+1;
			str = str.substr(posStart,posEnd-posStart);
			posStart = str.indexOf(' ')+1;
			posEnd = str.indexOf(' &nbsp;');
			var val = str.substr(posStart,posEnd-posStart);
//			alert("start: " + posStart+ "  End: " + posEnd);
//			alert("str: " + str);
//			alert("sku: " + sku);	
//			alert("*" + val + "*");
			if(val==1)
			{
				posScroll = divScroll.scrollHeight;
				
				posScroll -= 110;
				if(BrowserDetect.browser=="Explorer"){posScroll -= 5;}					
				if(posScroll<0){posScroll=0;}
				
				divScroll.scrollTop = posScroll;
				grabFile('assets/snippets/shoppingCart/eCart/include/eScrollPos.php?sku=' + sku +'&posScroll=' + posScroll);
			}
			else
			{
				grabFile('assets/snippets/shoppingCart/eCart/include/eScrollPos.php?sku=' + sku);
			}
		}
	}	
	else{wrapper.innerHTML = response;}
}

function prepareRequest(prm) 
{
	wrapper = document.getElementById("minicart");
	grabFile('assets/snippets/shoppingCart/eCart/include/eSession.php?' + prm + "&minicart=1");
}

function prepareRequestx(prm) 
{
	wrapper = document.getElementById("totalBasketx");
	grabFile('assets/snippets/shoppingCart/eCart/include/eSession.php?' + prm + "&minicart=0");
}

function preparePostRequest(prm) 
{
	wrapper = document.getElementById("minicart");
	sendData('assets/snippets/shoppingCart/eCart/include/eSession.php',prm + "&minicart=1");
}

//Functions to submit a form.
function getformvalues(fobj) {
	
	var str = "";
	aok = true;
	var val, optok;
	
	//Run through a list of all objects contained within the form.
	for(var i = 0; i < fobj.elements.length; i++) {
//		if(fobj.elements[i].name == "gSKU"){sku = fobj.elements[i].value;}
//		alert("name: " + fobj.elements[i].name + "   type: " + fobj.elements[i].type);
		optok= true;	
		if(fobj.elements[i].name) {
			if(fobj.elements[i].name=="eList") {
				optok=false;
				if(fobj.elements[i].type=="radio") {
//					alert("name: " + fobj.elements[i].name + "   value: " + fobj.elements[i].value + "   checked: " + fobj.elements[i].checked);
					optok=fobj.elements[i].checked;
//					alert("optok: " + optok);
				}
				else if(fobj.elements[i].type=="checkbox") {
//					alert("name: " + fobj.elements[i].name + "   value: " + fobj.elements[i].value + "   checked: " + fobj.elements[i].checked);
					optok=fobj.elements[i].checked;
//					alert("optok: " + optok);
				}				
			}
			
			if(optok==true) {
				if(i > 0) {str += "&";}
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value);
			}
		}
	}
	//Then return the string values.
	return str;
}

function submitform(theform) {
	var str = getformvalues(theform);
	if(aok == true){	
		obj = document.getElementById('token');
		var val = obj.value;
		obj.value = ++val;
//		preparePostRequest(str); //POST
		prepareRequest(str); //GET
	}
}

function changeShipping(objx) {
	obj = document.getElementById("shiptype");
	wrapper = document.getElementById("shipping");
	grabFile('assets/snippets/shoppingCart/eCart/include/eShipChangex.php?shiptype='+obj.value);
}

function addslashes(str) {
	if(str) {
	if(str.indexOf('&')>-1) {
		str=str.replace(/\&/g,'\&amp;');
	}}
//str=str.replace(/\'/g,'\\\'');
//str=str.replace(/\"/g,'\\"');
//str=str.replace(/\\/g,'\\\\');
//str=str.replace(/\0/g,'\\0');
return str;
}