function display(element) {
	var but = document.getElementById(element);
	but.style.display = 'block';
}
function hide(element) {
	var but = document.getElementById(element);
	but.style.display = 'none';
}
function removeOpt(element){
	var tdel = document.getElementById(element);
	tdel.parentNode.removeChild(tdel);
}
function disablEnable(element){
	var obj = document.getElementById(element);
	if(obj.disabled==true){
		obj.disabled=false;
	}else{
	        obj.disabled=true
	}
	return true;
}
function hidedisplay(element){
	var but = document.getElementById(element);
	if(but.style.display == 'block'){
		but.style.display = 'none';
	}else{
		but.style.display = 'block';
	}
}
function billingOverShipping(val){
	if(val.checked){
	 	if(!checkDataAlt('shoppingCart')){
		 	val.checked = false;
		 	return false;
		}
	        //display("shippingAddress");
		document.forms['shoppingCart'].elements['form_firstname'].value = document.forms['shoppingCart'].elements['form_cc_firstname'].value;
		document.forms['shoppingCart'].elements['form_lastname'].value = document.forms['shoppingCart'].elements['form_cc_lastname'].value;
		document.forms['shoppingCart'].elements['form_company'].value = document.forms['shoppingCart'].elements['form_cc_company'].value;
		document.forms['shoppingCart'].elements['form_address'].value = document.forms['shoppingCart'].elements['form_cc_address'].value;
		document.forms['shoppingCart'].elements['form_city'].value = document.forms['shoppingCart'].elements['form_cc_city'].value;
		document.forms['shoppingCart'].elements['form_state'].value = document.forms['shoppingCart'].elements['form_cc_state'].value;
		document.forms['shoppingCart'].elements['form_zip'].value = document.forms['shoppingCart'].elements['form_cc_zip'].value;
		document.forms['shoppingCart'].elements['form_phone'].value = document.forms['shoppingCart'].elements['form_cc_phone'].value;
		document.forms['shoppingCart'].elements['form_email'].value = document.forms['shoppingCart'].elements['form_cc_email'].value;
	}else{
		//hide("shippingAddress");
		document.forms['shoppingCart'].elements['form_firstname'].value = '';
		document.forms['shoppingCart'].elements['form_lastname'].value = '';
		document.forms['shoppingCart'].elements['form_company'].value = '';
		document.forms['shoppingCart'].elements['form_address'].value = '';
		document.forms['shoppingCart'].elements['form_city'].value = '';
		document.forms['shoppingCart'].elements['form_state'].value = 'AL';
		document.forms['shoppingCart'].elements['form_zip'].value = '';
		document.forms['shoppingCart'].elements['form_phone'].value = '';
		document.forms['shoppingCart'].elements['form_email'].value = '';
	}
}
function visibleFlash(){
	var obj = top.document.getElementsByTagName("object");
	var emb = top.document.getElementsByTagName("embed");
	obj.style.visibility = 'visible';
	emb.style.visibility = 'visible';
}
function resizeHeight(altezza,id){
	var TotAltezza = altezza;
	var thisOne = document.getElementById(id);
	thisOne.style.height = TotAltezza + "px";
}
function resizeWidth(larghezza,id){
	var TotLarghezza = larghezza;
	var thisOne = document.getElementById(id);
	thisOne.style.width = TotLarghezza + "px";
}
function setMarginLeft(margin,id){
	var margine = margin;
	var thisOne = document.getElementById(id);
	thisOne.style.marginLeft = margine + "px";
}
function setTop(altezza,id){
	var TotAltezza = altezza;
	document.getElementById(id).style.top = TotAltezza + "px";
}
function linkInTopFrame(link,frame){
        top.frames[frame].location.href = link;
}
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
function changeLabel(id,newLabel){
	var idLab = document.getElementById(id);
	idLab.innerHTML = newLabel;
}
/* Numbers */
function numToDB(number){
	return number.replace(",","");
}
function number_format (number, decimals, dec_point, thousands_sep){
  var exponent = "";
  var numberstr = number.toString ();
  var eindex = numberstr.indexOf ("e");
  if (eindex > -1){
    exponent = numberstr.substring (eindex);
    number = parseFloat (numberstr.substring (0, eindex));
  }

  if (decimals != null){
    var temp = Math.pow (10, decimals);
    number = Math.round (number * temp) / temp;
  }
  var sign = number < 0 ? "-" : "";
  var integer = (number > 0 ?
      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();

  var fractional = number.toString ().substring (integer.length + sign.length);
  dec_point = dec_point != null ? dec_point : ".";
  fractional = decimals != null && decimals > 0 || fractional.length > 1 ?
               (dec_point + fractional.substring (1)) : "";
  if (decimals != null && decimals > 0){
    for (i = fractional.length - 1, z = decimals; i < z; ++i)
      fractional += "0";
  }

  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ?
                  thousands_sep : null;
  if (thousands_sep != null && thousands_sep != ""){
	for (i = integer.length - 3; i > 0; i -= 3)
      integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
  }

  return sign + integer + fractional + exponent;
}
/* Cart */
function changeQty(qty){
	var cartQty = document.getElementById('howManyObjs');
	cartQty.innerHTML = qty;
}
function calculon(){
	var lastid = parseInt(document.forms['shoppingCart'].elements['lastid'].value);
	var tmpPrice = 0;
	var tmpQty = 0;
	var tmpTotPrice = 0;
	var tmp1=0;
	var totQty=0;

	for(j=0;j<lastid;j++){
		tmpPrice = parseFloat(numToDB(document.getElementById('singlePrice_'+j).innerHTML));
		tmpQty = parseInt(numToDB(document.forms['shoppingCart'].elements['qty_'+j].value));

		// Calculon
		tmp1 = tmpQty * tmpPrice;
		totQty += tmpQty;

		var singPrice=document.getElementById('totPrice_'+j);
		tmp1 = Math.round(tmp1 * 100) / 100;
		singPrice.innerHTML = number_format(tmp1,2,".",",");

		tmpTotPrice += tmp1;
	}
	// Coupon
	tmpTotPrice -= couponGet;

	var totItems=document.getElementById('totItem');
	totItems.innerHTML = totQty;

	var totPrice=document.getElementById('totPrice');
	totPrice.innerHTML = number_format(tmpTotPrice,2,".",",");

	// Refresh Total Price
	top.changeQty(totQty);
}

/* Checkout */
function checkData(formname){
	var problems = '';
	var oneChecked = false;
	var mailExp = new RegExp("^[a-zA-Z0-9_.-]{1,}@[a-zA-Z0-9]{2,}\.[a-zA-Z]{1,}$");

	if(document.forms[formname].elements['form_cc_number'].value.length < 12) problems += '- Insert Valid CC Number\n';
	if(document.forms[formname].elements['form_cc_cvv'].value.length < 2) problems += '- Insert Valid CVV Number\n';

	if(document.forms[formname].elements['form_cc_firstname'].value.length < 1) problems += '- Missing First Name\n';
	if(document.forms[formname].elements['form_cc_lastname'].value.length < 1) problems += '- Missing Last Name\n';
	if(document.forms[formname].elements['form_cc_address'].value.length < 1) problems += '- Missing Address\n';
	if(document.forms[formname].elements['form_cc_city'].value.length < 1) problems += '- Missing City\n';
	if(document.forms[formname].elements['form_cc_state'].value.length < 1) problems += '- Missing State\n';
	if(document.forms[formname].elements['form_cc_zip'].value.length < 1) problems += '- Missing Zip\n';
	//if(document.forms[formname].elements['form_cc_phone'].value.length < 1) problems += '- Missing Phone Number\n';
	//if(document.forms[formname].elements['form_cc_fax'].value.length < 1) problems += '- Missing Fax Number\n';
	if(!mailExp.test(document.forms[formname].elements['form_cc_email'].value)) problems += '- Invalid E-Mail format\n';
	if(!document.forms[formname].elements['form_shipping_billing'].checked){
		if(document.forms[formname].elements['form_firstname'].value.length < 1) problems += '- Missing First Name for Shipping address\n';
		if(document.forms[formname].elements['form_lastname'].value.length < 1) problems += '- Missing Last Name for Shipping address\n';
		if(document.forms[formname].elements['form_address'].value.length < 1) problems += '- Missing Address for Shipping address\n';
		if(document.forms[formname].elements['form_city'].value.length < 1) problems += '- Missing City for Shipping address\n';
		if(document.forms[formname].elements['form_state'].value.length < 1) problems += '- Missing State for Shipping address\n';
		if(document.forms[formname].elements['form_zip'].value.length < 1) problems += '- Missing Zip for Shipping address\n';
		if(!mailExp.test(document.forms[formname].elements['form_email'].value)) problems += '- Invalid E-Mail format for Shipping address\n';
	}

	if(problems.length > 0){
		alert(problems);
		return false;
	}
	return true;
}
function decekka(){
	document.forms['shoppingCart'].elements['form_shipping_billing'].checked = false;
}
function checkDataAlt(formname){
	var problems = '';
	var oneChecked = false;
	var mailExp = new RegExp("^[a-zA-Z0-9_.-]{1,}@[a-zA-Z0-9]{2,}\.[a-zA-Z]{1,}$");

	if(document.forms[formname].elements['form_cc_firstname'].value.length < 1) problems += '- Missing First Name\n';
	if(document.forms[formname].elements['form_cc_lastname'].value.length < 1) problems += '- Missing Last Name\n';
	if(document.forms[formname].elements['form_cc_address'].value.length < 1) problems += '- Missing Address\n';
	if(document.forms[formname].elements['form_cc_city'].value.length < 1) problems += '- Missing City\n';
	if(document.forms[formname].elements['form_cc_state'].value.length < 1) problems += '- Missing State\n';
	if(document.forms[formname].elements['form_cc_zip'].value.length < 1) problems += '- Missing Zip\n';
	//if(document.forms[formname].elements['form_cc_phone'].value.length < 1) problems += '- Missing Phone Number\n';
	//if(document.forms[formname].elements['form_cc_fax'].value.length < 1) problems += '- Missing Fax Number\n';
	if(!mailExp.test(document.forms[formname].elements['form_cc_email'].value)) problems += '- Invalid E-Mail format\n';

	if(problems.length > 0){
		alert(problems);
		return false;
	}
	return true;
}
function changePrice(base,tax,one,two,valore){
	switch(valore){
	        default:
	        case '0':
			var toadd = one;
	        break;
	        case '1':
	        	var toadd = two;
	        break;
	}
	var tmpTotPrice = parseFloat(base) + parseFloat(tax) + parseFloat(toadd);

	var totPriceShip=document.getElementById('totPriceShip');
	totPriceShip.innerHTML = number_format(toadd,2,".",",");
	
	var totPrice=document.getElementById('totPrice');
	totPrice.innerHTML = number_format(tmpTotPrice,2,".",",");
//alert(toadd+" + "+tmpTotPrice);
	var form_shipping_amount=document.getElementById('form_shipping_amount');
	form_shipping_amount.value = number_format(toadd,2,".",",");

	var form_cc_amount=document.getElementById('form_cc_amount');
	form_cc_amount.value = number_format(tmpTotPrice,2,".",",");
}
function addPrice(what,id,howmuch){
	howmuch = parseFloat(howmuch);
	if(what=='option'){
		document.getElementById('optionPrice').innerHTML = '$ '+number_format(howmuch,2,".",",");;
		document.forms.shoppingCart.form_option.value = id;
		document.forms.shoppingCart.form_option_value.value = howmuch;
		display('optionAdd');
	}else{
		document.getElementById('colorPrice').innerHTML = '$ '+number_format(howmuch,2,".",",");
		document.forms.shoppingCart.form_color.value = id;
		document.forms.shoppingCart.form_color_value.value = howmuch;
		display('colorAdd');
	}

	var finalPrice = parseFloat(document.forms.shoppingCart.singlePrice.value) + parseFloat(document.forms.shoppingCart.form_option_value.value) + parseFloat(document.forms.shoppingCart.form_color_value.value);
	document.getElementById('descTitlePrice').innerHTML = '$ '+number_format(finalPrice,2,".",",");;
}
function removePrice(what){
	if(what=='option'){
		hide('optionAdd');
		document.getElementById('optionPrice').innerHTML = '$ 0.00';
		document.forms.shoppingCart.form_option.value = 0;
		document.forms.shoppingCart.form_option_value.value = 0;
	}else{
		hide('colorAdd');
		document.getElementById('colorPrice').innerHTML = '$ 0.00';
		document.forms.shoppingCart.form_color.value = 0;
		document.forms.shoppingCart.form_color_value.value = 0;
	}

	var finalPrice = parseFloat(document.forms.shoppingCart.singlePrice.value) + parseFloat(document.forms.shoppingCart.form_option_value.value) + parseFloat(document.forms.shoppingCart.form_color_value.value);
	document.getElementById('descTitlePrice').innerHTML = '$ '+number_format(finalPrice,2,".",",");;
}
/* Single Object */
function createInput(obj,max){
//alert(max);
	obj.value=parseInt(obj.value);
	max=parseInt(max);
	//alert(obj.value);
	if(isNaN(obj.value)) obj.value=1;
	if(obj.value < 1) obj.value=1;
	if(obj.value > max) obj.value=max;

}
function changeBig(url,url2,valor){
	if(valor){
		var bigImg = document.getElementById('bigImgLink');
		bigImg.innerHTML = "<img src='" + url + "' alt='" + url2 + "' border='0' id='bigImg' />";
	}
	//bigImg.href = url2;
}
/* TRIGGER */
var timerId;
function startTrigger(n){
	if(!n){
		n = 5000;
	}
	if(!timerId){
        	timerId = setTimeout(function(){
                    	var sn = document.getElementById('labelFinish');
                        sn.innerHTML = '&nbsp;';
			//'hide("labelFinish");stopTrigger();'
			stopTrigger();
		}, n);
	}
}
function stopTrigger(){
	clearTimeout(timerId);
	timerId = false;
}

/* AJAX */
function callApiPOST(url, parameters,what) {
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Internal Server Error');
		return false;
	}
	switch(what){
	        default:
			http_request.onreadystatechange = ajaxExecute;
		break;
		case 'coupon':
			http_request.onreadystatechange = couponExecute;
		break;
	}
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
}
function syncTypes(url, parameters) {
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Internal Server Error');
		return false;
	}
	http_request.onreadystatechange = typeChange;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
}
function typeChange() {
	if (http_request.readyState < 4){
		// do nothing
	}else if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			// id,master,name,comment,note,qty,price,thumb,dimx,dimy,mid
			var answers=Array();
			answers=http_request.responseText.split("|");
			
			//alert(http_request.responseText);
			
			var prodTitle = document.getElementById('prodTitle_'+answers[1]);
			var prodDescr = document.getElementById('prodDescr_'+answers[1]);
			var prodNote = document.getElementById('prodNote_'+answers[1]);
			var prodPrice = document.getElementById('prodPrice_'+answers[1]);
			var prodImg = document.getElementById('prodImg_'+answers[1]);
			document.forms['shoppingCart_'+answers[1]].elements['objId'].value = answers[0];
			document.forms['shoppingCart_'+answers[1]].elements['singlePrice'].value = answers[6];
			document.forms['shoppingCart_'+answers[1]].elements['singlePrice'].value = answers[6];
			document.forms['shoppingCart_'+answers[1]].elements['objQty'].value = answers[5];
			
			if(parseInt(document.forms['shoppingCart_'+answers[1]].elements['form_qty'].value) > parseInt(answers[5])) document.forms['shoppingCart_'+answers[1]].elements['form_qty'].value = answers[5];
			
			prodTitle.innerHTML = answers[2];
			prodDescr.innerHTML = answers[3];
			prodNote.innerHTML = answers[4];
			prodPrice.innerHTML = "$"+number_format(answers[6],2,".",",");
			
			prodImg.innerHTML = "<img style='vertical-align:middle;' src='"+answers[7]+"' border='0' width='"+answers[8]+"' height='"+answers[9]+"' onmouseover=\"return overlib('<img src="+answers[10]+" width=300 alt= />');\" onmouseout='return nd();'  alt='E-zzzSleep' />";
		} else {
			alert("Sorry we are experiencing problems, please retry in few moments (Error: "+http_request.status+")");
		}
	}
}
function ajaxExecute() {
	if (http_request.readyState < 4){
		// do nothing
	}else if (http_request.readyState == 4) {
		if (http_request.status == 200) {
                        var sn = document.getElementById('labelFinish');
                        var answers=Array();
                        answers=http_request.responseText.split("|");
                        sn.innerHTML = answers[1];
                        top.changeQty(answers[0]);
                        display('labelFinish');
                        startTrigger();
		} else {
                        var sn = document.getElementById('labelFinish');
                        sn.innerHTML = "There was a problem Updating the cart!";
                        display('labelFinish');
                        startTrigger();
		}
	}
}

function couponExecute() {
	if (http_request.readyState < 4){
		// do nothing
	}else if (http_request.readyState == 4) {
		if (http_request.status == 200) {
                        var sn = document.getElementById('labelFinish');
                        sn.innerHTML = '';
                        var answers=Array();
                        answers=http_request.responseText.split("|");
                        if(answers[0]>0){
				applyCoupon_now(answers[0],answers[1]);
				sn.innerHTML = answers[0]+answers[1]+" ";
				document.forms['shoppingCart'].elements['coupon_applied'].value = answers[0]+answers[1];
                        }
                        sn.innerHTML += answers[2];
                        display('labelFinish');
                        startTrigger();
		} else {
                        var sn = document.getElementById('labelFinish');
                        sn.innerHTML = "There was a problem Updating the cart!";
                        display('labelFinish');
                        startTrigger();
		}
	}
}
var couponGet = 0;
function applyCoupon_now(price,type){
	var lastid = parseInt(document.forms['shoppingCart'].elements['lastid'].value);
	var tmpPrice = 0;
	var tmp1=0;

	for(j=0;j<lastid;j++){
		tmpPrice = parseFloat(numToDB(document.forms['shoppingCart'].elements['orgSinglePrice_'+j].value));
		switch(type){
		        case '$':
				tmp1 = tmpPrice;
				couponGet = price;
		        break;
		        case '%':
				var percent = 100 - price;
				tmp1 = parseFloat((tmpPrice / 100) * percent);
				couponGet = 0;
		        break;
		}
  		var singPrice=document.getElementById('singlePrice_'+j);
		singPrice.innerHTML = number_format(tmp1,2,".",",");
	}
	// Re Calculate!
	calculon();
}