/*  TotalShop Javascript toolkit
 *  (c) 2006 TotalWeb <kal@totalweb.gr>
 *
 *  For commercial use, visit web site: http://www.totalweb.gr/
 *
/*--------------------------------------------------------------------------*/

//PAGE STUFF INIT
//============================
var themenu;
var ajaxInProgress = false;
var refreshWishlistOnce = true;

function initPage(){
	if (document.getElementById("div_canvas")){
		cart_action();
		regenerate2();	
		initScrolling();
	}
	//Wishlist is refreshed upon cart completition using refreshWishlistOnce
	
	if (document.getElementById("hscroller")){
		initGalleryScript();
	}
	
	markRowsInit();
}


//GENERAL STUFF
//=========================================

function findObj(n, d) {
  var p,i,x;
  if(!d) d=document;
  if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document;
		n=n.substring(0,p);
  }
  if(!(x=d[n])&&d.all) x=d.all[n];
  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n);
  return x;
}

function toggleVis(elem){
	element=document.getElementById(elem);
	if(element.style.display =='none'){
		element.style.display ='block';
	}else{
		element.style.display ='none';
	}
}

function popupWin(addr,sizeX,sizeY){
	myWin=window.open(addr,'','toolbar=0,location=0,directories=0,menuBar=0,scrollbars=1,resizable=1,width='+sizeX+',height='+sizeY);
}

function changePage(pg){	
	document.forms['frmFilter'].pg.value=pg;
	document.forms['frmFilter'].submit();
}

function changeOrder(ord){
	var orderVal;
	orderVal = document.forms['frmFilter'].hdnOrderNum.value;
	if(orderVal.indexOf('d')!=-1){
		document.forms['frmFilter'].hdnOrderNum.value=ord;
	}else{
		document.forms['frmFilter'].hdnOrderNum.value=ord+'d';
	}	
	document.forms['frmFilter'].submit();
}

var marked_row = new Array;

function markRowsInit() {
    var rows = document.getElementsByTagName('tr');
    for ( var i = 0; i < rows.length; i++ ) {
        // ... with the class 'r0' or 'r1' ...
        if ( 'r0' != rows[i].className.substr(0,2) && 'r1' != rows[i].className.substr(0,2) ) {
            continue;
        }
        if ( navigator.appName == 'Microsoft Internet Explorer' ) {
            rows[i].onmouseover = function() {
                this.className += '_hover';
            }
            rows[i].onmouseout = function() {
                this.className = this.className.replace( '_hover', '' );
            }
        }
    }
}

function fadeup(elementId,red,green,blue) {
	
	if (red ==255 && green == 255 && blue==255) {
		//document.getElementById(elementId).style.backgroundColor = "transparent";
		return true;
	}

	document.getElementById(elementId).style.backgroundColor = "rgb("+red+","+green+","+blue+")";

	red = red + Math.ceil((255 - red)/10);
	green = green + Math.ceil((255-green)/10);
	blue = blue + Math.ceil((255-blue)/10);

	setTimeout("fadeup('"+elementId+"',"+red+","+green+","+blue+")", 10);

}

function fillAddresses(addType){
	var frm = document.frmCheckout.elements;
	if (frm){
		var j = 0;
		var addrlist = frm['spc'+addType+'Addresses'].value.split(';');		
		for(i=0;i<frm.length;i++){
			if((frm[i].name.indexOf('txt'+addType)>=0 || frm[i].name.indexOf('lst'+addType)>=0) && frm[i].name!='lstBillingId' && frm[i].name!='lstShippingId' && frm[i].name.indexOf('_')<0 ){
				if(addrlist[j]){
					frm[i].value=addrlist[j];
				}else{
					frm[i].value='';
				}
				j++;
			}
		}
	}
}

//CART BOX MOVEMENT
//===============================

function ScrollingDetected(evt){
	var TheEventObject = evt || event;
	if(document.all && document.compatMode && document.compatMode == "CSS1Compat"){
		if (navigator.userAgent.indexOf("MSIE 9.0")>=0){
			document.getElementById("cart_canvas").style.top = (document.documentElement.scrollTop/150) + 5 + "px";
		}else{
			document.getElementById("cart_canvas").style.top = document.documentElement.scrollTop + 5 + "px";
		}
	}
}

function initScrolling(){
	if(window.addEventListener)	{
		window.addEventListener("scroll", ScrollingDetected, false);
			document.getElementById("cart_canvas").style.position = "fixed";
	}else if(document.addEventListener){ // Opera 7+	
		document.addEventListener("scroll", ScrollingDetected, false);
		document.getElementById("cart_canvas").style.position = "fixed";
	}else if(document.all && document.compatMode && document.compatMode == "CSS1Compat"){
		document.getElementById("cart_canvas").style.position = "absolute";
		if("onscroll" in self){
			window.onscroll = ScrollingDetected;
		};
	};
}

function pull(){
	if (window.pullit)	clearInterval(pullit);
	if (window.drawit)	clearInterval(drawit);
	pullit=setInterval("pullengine()",10);
}

function draw(){
	if (window.drawit) clearInterval(drawit);
	if (window.pullit) clearInterval(pullit);
	drawit=setInterval("drawengine()",10);
}

function pullengine(){
	if ((ie4||ns6)&&parseInt(themenu.left)<rightboundary)
		themenu.left=parseInt(themenu.left)+20+"px";
	else if(ns4&&themenu.left<rightboundary)
		themenu.left+=1;
	else if (window.pullit){
		themenu.left=0+"px";
		clearInterval(pullit);
	}
}

function drawengine(){
	if ((ie4||ns6)&&parseInt(themenu.left)>leftboundary)
		themenu.left=parseInt(themenu.left)-20+"px";
	else if(ns4&&parseInt(themenu.left)>leftboundary)
		themenu.left-=1;
	else if (window.drawit){
		themenu.left=leftboundary+"px";
		clearInterval(drawit);
	}
}

function regenerate(){
	window.location.reload();
}

function regenerate2(){
	if (ns4){
		document.cart_canvas.left=((parseInt(slidemenu_width)-parseInt(slidemenu_reveal))*-1);
		document.cart_canvas.visibility="show";
		setTimeout("window.onresize=regenerate",400);
	}
}

//CART & WISHLIST FUNCTIONS
//===============================
function adjQuant(guantBoxName){	
	var tmpQ = document.frmProductList[guantBoxName];
	if(isNaN(tmpQ.value) || tmpQ.value.search(/[^0-9]/)>0 || tmpQ.value.indexOf('-')>-1){
		tmpQ.value="1";
	}
}

function addQty(boxId){
	if (document.frmProductList.elements['quant_'+boxId]){
		document.frmProductList.elements['quant_'+boxId].value = parseInt(document.frmProductList.elements['quant_'+boxId].value)+1;
	}
}

function delQty(boxId){
	if (document.frmProductList.elements['quant_'+boxId]){
		if(document.frmProductList.elements['quant_'+boxId].value>0) document.frmProductList.elements['quant_'+boxId].value = parseInt(document.frmProductList.elements['quant_'+boxId].value)-1;
	}
}

function showCartLoading(){
		if(document.getElementById('cart_loading'))document.getElementById('cart_loading').style.display='block';
		if(document.getElementById('sumOfItemsLabel'))document.getElementById('sumOfItemsLabel').innerHTML='<img src="images/loading.gif" alt="Loading..." align="absmiddle" />';
}

function cart_action(){
	if (!ajaxInProgress){
		ajaxInProgress = true;		
		if (window.drawit)	clearInterval(drawit);
		switch(cart_action.arguments[0]){
			case 'add':	
				if(cart_action.arguments.length>1){			
					if (!isNaN(cart_action.arguments[1])){
						if (document.frmProductList){
							if(document.frmProductList.elements['quant_'+cart_action.arguments[1]]){
								if (document.frmProductList.elements['quant_'+cart_action.arguments[1]].value==0){
									showCartLoading(); SendCmd('cart_update.asp?items='+cart_action.arguments[1]+'_&qtys=1_', 'callback_updateCart');						
								}else{
									showCartLoading(); SendCmd('cart_update.asp?items='+cart_action.arguments[1]+'_&qtys='+document.frmProductList.elements['quant_'+cart_action.arguments[1]].value+'_', 'callback_updateCart');
									document.frmProductList.elements['quant_'+cart_action.arguments[1]].value=1;		
								}
							}else{
								showCartLoading(); SendCmd('cart_update.asp?items='+cart_action.arguments[1]+'_&qtys=1_', 'callback_updateCart');
							}
						}else{
							showCartLoading(); SendCmd('cart_update.asp?items='+cart_action.arguments[1]+'_&qtys=1_', 'callback_updateCart');
						}	
					}			
				}else{
					var strItems ='';
					var strQtys ='';
					if (document.frmProductList){
						var frm = document.frmProductList.elements;
						for(i=0 ; i<frm.length;i++){
							if(frm[i].name.indexOf('quant_')==0 && frm[i].value>0 && !isNaN(frm[i].value)){
								strItems = strItems + frm[i].name.substr(6) + '_';
								strQtys = strQtys + frm[i].value + '_';
								frm[i].value=1;
							}
						}
						if (strItems.length>0) showCartLoading(); SendCmd('cart_update.asp?items='+strItems+'&qtys='+strQtys, 'callback_updateCart'); 
					}
				}
			break;
			case 'del':
				if (cart_action.arguments[1]>0) showCartLoading(); SendCmd('cart_update.asp?delItem='+cart_action.arguments[1], 'callback_updateCart');
			break;	
			case 'sub':
				if (cart_action.arguments[1]>0) showCartLoading(); SendCmd('cart_update.asp?subItem='+cart_action.arguments[1], 'callback_updateCart');
			break;
			default:
				showCartLoading(); SendCmd('cart_update.asp?', 'callback_updateCart');
			break;
		}
	}
}

function wishlist_action(){
	if (!ajaxInProgress){
		ajaxInProgress = true;
		if(document.getElementById('wishlist_loading')) document.getElementById('wishlist_loading').style.display='block';
		switch(wishlist_action.arguments[0]){
			case 'add':	
				if (wishlist_action.arguments[1]>0) SendCmd('wishlist_update.asp?items='+wishlist_action.arguments[1], 'callback_updateWishlist');	
			break;
			case 'del':
				if (wishlist_action.arguments[1]>0) SendCmd('wishlist_update.asp?delItem='+wishlist_action.arguments[1], 'callback_updateWishlist');
			break;
			default:
				SendCmd('wishlist_update.asp?', 'callback_updateWishlist');
			break;
		}
	}
}

//CALLBACKS
function callback_updateCart(){ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete" ){ 
		document.getElementById("div_canvas").innerHTML=xmlHttp.responseText;
		document.getElementById("sumOfItemsLabel").innerHTML=xmlHttp.responseText.substring(xmlHttp.responseText.indexOf('<!--CARTLBL')+11,xmlHttp.responseText.indexOf('CARTLBL-->'));
		//pull();
		//drawit=setTimeout("draw()", 1500);
		fadeup("div_canvas",255,0,0);
		ajaxInProgress = false;
		
		if (document.getElementById("div_wishlist") && refreshWishlistOnce){
			wishlist_action();
			refreshWishlistOnce = false;
		}
		
	} 
} 

function callback_updateWishlist(){ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete" ){ 
		if (document.getElementById("div_wishlist")){
			document.getElementById("div_wishlist").innerHTML=xmlHttp.responseText;
			fadeup("div_wishlist",255,0,0);
			ajaxInProgress = false;
		} 
	}
} 

//AJAX STUFF
//====================================

var xmlHttp;
var sumOfItemsLabel;

function SendCmd(url, callbackFunction){ 
	var url='includes/ajax/'+url+'&sid=' + Math.random() ;
	xmlHttp=GetXmlHttpObject(eval(callbackFunction));
	xmlHttp.open("GET", url , true);
	xmlHttp.send(null);
	//alert(url);
} 

function GetXmlHttpObject(handler) { 
	var objXmlHttp=null;
	
	//if (navigator.userAgent.indexOf("Opera")>=0){
	//	alert("Opera browser is not supported") 
	//	return ;
	//}
	if (navigator.userAgent.indexOf("MSIE")>=0){ 
		var strName="Msxml2.XMLHTTP";
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0){
			strName="Microsoft.XMLHTTP";
		} 
		try{ 
			objXmlHttp=new ActiveXObject(strName);
			objXmlHttp.onreadystatechange=handler ;
			return objXmlHttp;
		}catch(e){ 
			alert("Error. Scripting for ActiveX is disabled." ) ;
			return ;
		} 
	} 
	if (navigator.userAgent.indexOf("Mozilla")>=0 || navigator.userAgent.indexOf("Opera")>=0){
		objXmlHttp=new XMLHttpRequest();
		objXmlHttp.onload=handler;
		objXmlHttp.onerror=handler ;
		return objXmlHttp
	}
} 
