/*  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 lou_initPage(){

	if (document.getElementById("div_canvas")){
		cart_action();
		regenerate2();	
		lou_initScrolling();
	}
	//Wishlist is refreshed upon cart completition using refreshWishlistOnce
	
	if (document.getElementById("hscroller")){
		lou_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 lou_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("Opera")>=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 lou_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;
		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;
		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
	}
} 

// JavaScript Document

var errorColor = '#ffaaaa';
var okColor = '#eeeeee';

function validateAfm (afm) {
    var a, b, c, d, e, f, g, h, i, s, y;
    var ret;

    if (afm.value != "" && afm.value.length != 9) {
		afm.style.backgroundColor=errorColor;
    	window.alert('Παρουσιάστηκαν τα παρακάτω προβλήματα:\n - Tο ΑΦΜ πρέπει να έχει 9 ψηφία.')
	  
      return false;
    }
  
    a = afm.value.charAt(0);
    b = afm.value.charAt(1);
    c = afm.value.charAt(2);
    d = afm.value.charAt(3);
    e = afm.value.charAt(4);
    f = afm.value.charAt(5);
    g = afm.value.charAt(6);
    h = afm.value.charAt(7);
    i = afm.value.charAt(8);
  
    s = a * 256 + b * 128 + c * 64 + d * 32 + e * 16 + f * 8 + g * 4 + h * 2;
    y = s % 11;
  
    ret = true;
    if ((y == 10) && (i != 0)) ret = false;
    if ((y < 10) && (i != y)) ret = false;
  
    if (ret == false) {
		afm.style.backgroundColor=errorColor;
     	window.alert('Παρουσιάστηκαν τα παρακάτω προβλήματα:\n - Tο ΑΦΜ που εισάγατε δεν είναι σωστό.');	 	
    }else{
		afm.style.backgroundColor=okColor;
	}
	
  
    return ret;
}


function validateForm() {

  var i,p,q,nm,restr,minChars,errors='',args=validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) {
	//START FOR
	val=findObj(args[i]);	
	minChars=args[i+1];
  	restr=args[i+2];
	try{
		if (val) {
			nm=val.id;
			if ((vl=val.value)!="") {
				if (restr.indexOf('isEmail')!=-1) {
					p=vl.indexOf('@');
					q=vl.indexOf('.');
					if (p<1 || p==(length-1) || q<1 || q==(length-1)) {
						errors+=' - Το πεδίο \"'+nm+'\" πρέπει να περιέχει το email σας.\n';
						val.style.backgroundColor=errorColor;
					}
				}else if (restr.indexOf('isNum')!=-1) {
					p=isNaN(vl);
					if (p){
						errors+=' - Το πεδίο \"'+nm+'\" πρέπει να περιέχει αριθμητική τιμή.\n';
						val.style.backgroundColor=errorColor;
					}
				}else if (vl.length<minChars){
					errors+=' - Το πεδίο \"'+nm+'\" δεν μπορεί να περιέχει λιγότερο από '+minChars+' χαρακτήρες .\n';
					val.style.backgroundColor=errorColor;
				}
			}else if (restr.charAt(0) == 'R') {
				errors += ' - Το πεδίο \"'+nm+'\" είναι προαπαιτούμενο.\n'; 
				val.style.backgroundColor=errorColor;			
			}
		}
	}catch(e){
		//FOR OPTIONLISTS...
		var lstObjs,k,j,tmpSel=false;
		for(k=0;k<document.forms.length;k++){
			if(lstObjs=document.forms[k].elements[args[i]]) break;
		}		
		for(j=0;j<lstObjs.length;j++){
			tmpSel=tmpSel||lstObjs[j].checked;
		} 
		if(!tmpSel){
			errors += ' - Πρέπει να επιλέξετε τουλάχιστο ένα από: \"'+lstObjs[0].id+'\".\n';
			lstObjs[0].style.backgroundColor=errorColor;
		}else{
			lstObjs[0].style.backgroundColor='none';
		}
	}
	
	if(!(errors.indexOf(nm)>=0) && val.style){
		if (val.style.backgroundColor)	val.style.backgroundColor=okColor;		
	}
	//END FOR
  }
  if (errors) alert('Παρουσιάστηκαν τα παρακάτω προβλήματα:\n'+errors);

  document.returnValue = (errors == '');
}

function requireAtLeastOne(){
	var args=requireAtLeastOne.arguments;
	var searchStuff="";
	for (i=1; i<args.length; i++) {
		searchStuff+=document.forms[args[0]][args[i]].value;
	}
	if (searchStuff==""){
		for (i=1; i<args.length; i++) {
			document.forms[args[0]][args[i]].style.backgroundColor=errorColor;
		}
		alert("Πρέπει να εισάγετε κάποιο ελάχιστο κείμενο.");		
		document.returnValue=false;
	}else{
		for (i=1; i<args.length; i++) {
			document.forms[args[0]][args[i]].style.backgroundColor=okColor;
		}
		document.returnValue=true;
	}
}

function comparePasswords(pass1,pass2){
	  if (findObj(pass1).value!=findObj(pass2).value){
			alert("Οι κωδικοί που εισάγατε διαφέρουν.");
			return false;
			}else return true;		
}


	/************************************************************************************************************
	(C) www.dhtmlgoodies.com, November 2005
	
	This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
	
	Terms of use:
	You are free to use this script as long as the copyright message is kept intact. However, you may not
	redistribute, sell or repost it without our permission.
	
	Thank you!
	
	www.dhtmlgoodies.com
	Alf Magne Kalleland
	
	************************************************************************************************************/
	var arrowImageWidth = 35;	// Height of arrow image in pixels;
	
	var previewImage = false;
	var previewImageParent = false;
	var slideSpeed = 0;
	var previewImagePane = false;
	var slideEndMarker = false;
	var hscroller = false;
	var imageGalleryCaptions = new Array();
	
	var isOverScroller=false;
	
	function getTopPos(inputObj)
	{		
	
	  var returnValue = inputObj.offsetTop;
	  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetTop;
	  return returnValue;
	}
	
	function getLeftPos(inputObj)
	{

	  var returnValue = inputObj.offsetLeft;
	  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;
	  return returnValue;
	}

	function initSlide(e)
	{
		if(document.all)e = event;
		
		if (isOverScroller){
			if(this.src.indexOf('over')<0) this.src = this.src.replace('.gif','-over.gif');			
			slideSpeed = e.clientX + Math.max(document.body.scrollLeft,document.documentElement.scrollLeft) - getLeftPos(this);
			if(this.src.indexOf('right')>=0){
				slideSpeed = (slideSpeed)*-1;	
			}else{
				slideSpeed = arrowImageWidth - slideSpeed;
			}
			slideSpeed = Math.round(slideSpeed * 10 / (arrowImageWidth/2));
		}else{
			slideSpeed = (slideSpeed)*-1;
		}		
	}
	
	function stopSlide()
	{		
		slideSpeed = 0;
		this.src = this.src.replace('-over','');
	}
	
	function lou_slidePreviewPane()
	{
		if(slideSpeed!=0){
			var leftPos = previewImagePane.style.left.replace(/[^\-0-9]/g,'')/1;	
		
			if(slideSpeed<0 && slideEndMarker.offsetLeft<(previewImageParent.offsetWidth - leftPos)){
				slideSpeed=0;			
			}
			leftPos = leftPos + slideSpeed;
			if(leftPos>0)leftPos=0;

		 	previewImagePane.style.left = leftPos + 'px';
	 	
		}
		
						//	window.status = slideSpeed + ' - ' + leftPos + ' - ' + slideEndMarker.offsetLeft;
		
	 	setTimeout('lou_slidePreviewPane()',30);		
	}
	
	
	function lou_initGalleryScript()
	{
		previewImageParent = document.getElementById('elems');
		previewImagePane = document.getElementById('elems').getElementsByTagName('DIV')[0];
		previewImagePane.style.left = '0px';
		hscroller  = document.getElementById('hscroller');
		slideEndMarker = document.getElementById('slideEnd');
		
		document.getElementById('arrow_left_image').onmousemove = initSlide;
		document.getElementById('arrow_left_image').onmouseout = stopSlide;
		
		document.getElementById('arrow_right_image').onmousemove = initSlide;
		document.getElementById('arrow_right_image').onmouseout = stopSlide;
		
		document.getElementById('hscroller').onmouseout = function(){slideSpeed=2; isOverScroller=false; initSlide();};
		document.getElementById('hscroller').onmouseover = function(){slideSpeed=0; isOverScroller=true; };
		
		slideSpeed=2; 
		initSlide();
		
		lou_slidePreviewPane();
		
	}	
		