/**
 * general vars for application
 */
 var serverName = "http://batman/acm";
 var serverNameSSL = "https://batman/acm";
 var imgBase = serverName+"/img/";
 var acmImgBase = serverName+"/img/acms";
 var draggablesBase = imgBase+"/icons";
 var iconsBase = imgBase+"/icons";
 var articleDrag = "articleDrag";
 var articlePic = "articlePic";
 var dnePHPBase = serverName+"/lib/dne/php";
 var dnePHPBaseSSL = serverNameSSL+"/lib/dne/php";
 var logging = false;
 var consoleLogging = false;
 var type = 'pocket';
 
 var articleText = new Array();
 
 articleText[1001] = "in silber";
 articleText[1002] = "in schwarz";
 articleText[1003] = "hybrid (schwarz/silber)";
 
 var articlePics = new Array();
 articlePics['pocket'] = new Array();
 articlePics['pocket'][0] = acmImgBase+"/acm_1004.jpg"; 
 articlePics['pocket'][1] = acmImgBase+"/acm_leder2.jpg"; 
 
 articlePics['dock'] = new Array();
 articlePics['dock'][0] = acmImgBase+"/acm_1005.jpg"; 
 articlePics['dock'][1] = acmImgBase+"/acm_dock2.jpg"; 
 
 var actualPic = 0;

/**
 * general vars for shop
 */
 /*var actual = 1001;*/
 var cart;
 var formEnabled = false;
 
function log(msg,type,loc){
	if(logging)
		YAHOO.log(msg,type,loc);
}


function switchPic(t){
	Effect.toggle(articlePic,'appear', {'duration':0.3}); 
	if(actualPic==0)
		actualPic = 1;
	else
		actualPic = 0;
	type = t;
	window.setTimeout('fadeInArticlePic()',500);
}


function fadeInArticlePic(){
	//alert('Fadein');
	$('articlePic').src = articlePics[type][actualPic];
	Effect.toggle(articlePic,'appear', {'duration':0.3}); 
}

function toggleForm(){
	elements = document.getElementsByClassName('disabable');
	
	for(i=0;i<elements.length;i++){
		el = elements[i];
		if(formEnabled)
			el.disable();
		else
			el.enable()
	}
	
	if(formEnabled)
		formEnabled=false;
	else
		formEnabled = true;
}


function fadeInArticle(){
	 $('articleText').innerHTML = articleText[actual];
     $(articlePic).src = acmImgBase+"/acm_"+actual+".jpg";
     Effect.toggle(articlePic,'appear', {'duration':0.2});
}

/*
 * switch article image when rollover
 */
 function switchArticle(id){
 	if(actual==id)
		return;
 	 actual = id;
     Effect.toggle(articlePic,'appear',{'duration':0.2});
     window.setTimeout('fadeInArticle()',250);
 }
 
 function revertArticle(){
 	$(articleDrag).src = acmImgBase+actual+".jpg";
 }
 
 function clickArticle(id){
 	actual = id;
	$(articleDrag).src = acmImgBase+actual+".jpg";
 }
 
 /*
  * do some initial stuff
  */
 function initShop(a){
 	if(a!=null && a!="")
		actual = a;
 	//enableJS();
	if(consoleLogging)
 		YAHOO.widget.Logger.enableBrowserConsole();
	Draggables.addObserver(new dragObserver());
 	log('Creating new draggable','info','initShop');
	drag = new Draggable(articleDrag,{revert: true, ghosting: true});
	
	Droppables.add('dropCart',{hoverclass: 'dropcartHover',
		onDrop: function (drag,drop,event){
			drag.setStyle({
				opacity: '0.2'
			});
			log('Dropping element with id '+actual,'info','ondrop');
			addItemToCart(actual);
		},
		onHover: function(drag,drop,event){
			//alert('Dropping...');
		}
	});
	replaceLinks();
	//printCart();
 }
 
 
 function enableJS(){
 	var url = dnePHPBase+"/index.php?staticaction=enableJS&PHPSESSID="+sessionId;
	new Ajax.Request(url, { method: 'post',
    onSuccess:function(html,json){
		if(json)
			log('JS enabled','info','enableJS');
    }
  	});
 }
 
 var swap, dragEl;
 
 function dragObserver() {
    dragObserver.prototype.onStart = function(eventName, draggable, event) {
		//alert("X/Y "+Event.pointerX(event)+"/"+Event.pointerY(event));
		
		eventX = Event.pointerX(event);
		eventY = Event.pointerY(event);
		
		drag = draggable.element;
		img = drag.immediateDescendants()[0];
		//img.style.position = "absolute";
		img.style.width = "95px";
		img.style.height = "90px";

		img.setStyle({
			width: '95px',
			height: '90px'
		});
		img.src = draggablesBase+"/acm_"+actual+".gif";
		
		//calculate padding
		dragX = Position.cumulativeOffset(drag)[0];
		dragY = Position.cumulativeOffset(drag)[1];
		
		paddingY = (eventY-dragY-25)+"px";
		paddingX = (eventX-dragX-45)+"px";
		
		pad = paddingY+" 0 0 "+paddingX;
		
		drag.setStyle({
			padding: pad,
			width: '150px'
		}
		);
	};
    /*dragObserver.prototype.onDrag = function(eventName, draggable, event) {
		//alert("X/Y "+Event.pointerX(event)+"/"+Event.pointerY(event));
		
		xCord = Event.pointerX(event)+"px";
		yCord = Event.pointerY(event)+"px";
		
		drag = draggable.element;
		
		img = drag.immediateDescendants()[0];
		//img.style.position = "absolute";
		img.style.top = yCord;
		img.style.left = xCord;
		drag.style.left = xCord;
		drag.style.top = yCord;
		
	};*/
	
	
    dragObserver.prototype.onEnd = function(eventName, draggable, event) {
		drag = draggable.element;
		swap = drag.immediateDescendants()[0];
		swap.style.width = "95px";
		swap.style.height = "90px";

		eventX = Event.pointerX(event);
		eventY = Event.pointerY(event);

		//calculate padding
		dragX = Position.cumulativeOffset(drag)[0];
		dragY = Position.cumulativeOffset(drag)[1];
		
		paddingY = (eventY-dragY-25)+"px";
		paddingX = (eventX-dragX-45)+"px";
		
		pad = paddingY+" 0 0 "+paddingX;
		
		drag.setStyle({
			padding: pad,
			width: '150px'
		}
		);

	
		
		dragEl = drag;
		setTimeout('swapBack()',300);
    };
}

function swapBack(){
	dragEl.setStyle({
		padding: '0'
	});
	img = swap;
	img.src = imgBase+"acms/acm_"+actual+".jpg";
	//Effect.Fade('pic');
	img.style.width = "500px";
	img.style.height = "290px";
	
	swap = null;
	dragEl = null;
}


function addItemToCart(id){
	if(id==null || id=="")
		id=actual;
	
	var url = dnePHPBase+"/index.php?module=Shop&action=addItem&id="+id+"&js=true&PHPSESSID="+sessionId;
	new Ajax.Request(url, { method: 'post',
    onSuccess:function(html,json){
		printCart(json);
    }
  	});
}

function printCart(cart){
	if(cart==null){
		var url = dnePHPBase+"/index.php?module=Shop&action=printCartJSON&PHPSESSID="+sessionId;
		new Ajax.Request(url, { method: 'post',
	    onSuccess:function(html,json){
			printCart(json);
	    }
	  	});
		return;
	}
	
	if(cart.length<1){
		$('cart').innerHTML = "";
		return;
	}
	shoppingCart = '<div class="rundung1"><img class="rund1" src="'+imgBase+'/oben_drei.gif" width="300" height="4" alt=""></div>';
	shoppingCart += '<div class="mitte_drei">';
	shoppingCart += '<h2>'+shopText[0]+'</h2>';
    shoppingCart +='</div>';

	row = '2';
	total = 0;

	cart.each(function(item){
	    shoppingCart += '<div class="warenkorb'+row+'">';
		
		if(item.img!=null){
			iconURL = iconsBase+'/'+item.img+'.gif';
			if(row==1)
				iconURL = iconsBase+'/'+item.img+'_2.gif';
		}
		else{
			iconURL = iconsBase+'/acm_'+item.id+'.gif';
			if(row==1)
				iconURL = iconsBase+'/acm_'+item.id+'_2.gif';
		}
		
	    shoppingCart += '<img class="waren" src="'+iconURL+'" width="95" height="90" alt="Bild vom Artikel im Warenkorb">';
	    shoppingCart += '<table>';
	    shoppingCart += '<tr>';
	    shoppingCart += '<td class="ce90">'+shopText[1]+'</td>';
	    shoppingCart += '<td class="ce90">'+item.name+'</td>';
	    shoppingCart += '</tr>';
	    shoppingCart += '<tr>';
	    shoppingCart += '<td class="ce90">'+shopText[2]+'</td>';
	    shoppingCart += '<td class="ce90">'+item.qty+'</td>';
	    shoppingCart += '</tr>';
	    shoppingCart += '<tr>';
	    shoppingCart += '<td class="ce90">'+shopText[3]+'</td>';
	    shoppingCart += '<td class="ce90">Euro '+getCurrencyString(item.price)+'</td>';
	    shoppingCart += '</tr>';
	    shoppingCart += '<tr>';
	    shoppingCart += '<td class="ce90">'+shopText[4]+'</td>';
	    shoppingCart += '<td class="ce90">Euro '+getCurrencyString(item.price*item.qty)+'</td>';
	    shoppingCart += '</tr>';
	    shoppingCart += '<tr>';
	    shoppingCart += '<td  colspan="2" style="border: none; padding-top: 8px">';
		shoppingCart += '<table style=" width: 172px;">';
		shoppingCart += '<tr>';
		shoppingCart += '<td align="left" style="border: none"><img src="'+iconsBase+'/plus'+row+'.gif" class="symWarenkorb" onclick="increaseQuantity('+item.id+')"/>';
		shoppingCart += '&nbsp;&nbsp;&nbsp;';
		shoppingCart += '<img src="'+iconsBase+'/minus'+row+'.gif" class="symWarenkorb" onclick="decreaseQuantity('+item.id+')"/></td>';
		shoppingCart += '<td align="right" style="border: none"><img src="'+iconsBase+'/x'+row+'.gif" class="symWarenkorb" onclick="removeItem('+item.id+')"/></td>';
		shoppingCart += '</tr>';
		shoppingCart += '</table>';
	    shoppingCart += '</td>';
	    shoppingCart += '</tr>';
		shoppingCart += '</table>';
	    shoppingCart += '</div>';
		
		total += (item.price*item.qty);
		
		if(row==1)
			row=2;
		else
			row=1;
	});
	
	if(row==2)
    	shoppingCart +='<div class="rundung2"><img class="rund1" src="'+imgBase+'/unten_drei_filled.gif" width="300" height="4" alt=""></div>';
	else
    	shoppingCart +='<div class="rundung2"><img class="rund1" src="'+imgBase+'/unten_drei.gif" width="300" height="4" alt=""></div>';
		
		
    shoppingCart +='<div class="gesamt1">';
    shoppingCart +='<div class="rundung3"><img class="rund1" src="'+imgBase+'/warenkorb_oben_dunkel.gif" width="300" height="3" alt=""></div>';
    shoppingCart +='<div class="gesamt2">'+shopText[5]+'</div>';
    shoppingCart +='<div class="gesamt3">4.00 Euro<br/>'+getCurrencyString(total+4)+' Euro</div>';
    shoppingCart +='<div class="rundung1"><img class="rund1" src="'+imgBase+'/warenkorb_unten_dunkel.gif" width="300" height="3" alt=""></div>';
    shoppingCart +='</div>';
    shoppingCart +='<div style="height: 12px"></div>';
	shoppingCart +='<form action="'+serverName+'/order/" method="POST">';
    shoppingCart +='<input type="hidden" name="action" value="checkout"/>';
    shoppingCart +='<div class="warenkorb" onclick="this.parentNode.submit()">'+shopText[6]+'</div>';
	shoppingCart +='</form>';


	$('cart').innerHTML = shoppingCart;
	}

function getCurrencyString(number){
	tmp = String(number);
	if(tmp.lastIndexOf('.')==-1)
		return number+".00";
	else if(tmp.lastIndexOf('.')==(tmp.length-2))
		return number+"0";
	else	
		return tmp.substr(0,(tmp.lastIndexOf('.')+3));
}


function removeItem(id){
	var url = dnePHPBase+"/index.php?module=Shop&action=removeItem&id="+id+"&js=true&PHPSESSID="+sessionId;
	new Ajax.Request(url, { method: 'post',
    onSuccess:function(html,json){
		printCart(json);
    }
  	});
}


function resetForm(name){
	var form = $(name)
	inputs = form.getInputs('text') // -> only text inputs
	
	for(i=0;i<inputs.length;i++){
		el = inputs[i];
		el.setAttribute('value','');
	}	
}



function decreaseQuantity(id){
	var url = dnePHPBase+"/index.php?module=Shop&action=decreaseQuantity&id="+id+"&js=true&PHPSESSID="+sessionId;
	new Ajax.Request(url, { method: 'post',
    onSuccess:function(html,json){
		printCart(json);
    }
  	});
}

function increaseQuantity(id){
	var url = dnePHPBase+"/index.php?module=Shop&action=increaseQuantity&id="+id+"&js=true&PHPSESSID="+sessionId;
	new Ajax.Request(url, { method: 'post',
    onSuccess:function(html,json){
		printCart(json);
    }
  	});
}


 function draggingStart(eventName, draggable, event){
 	//$('dragImg').src = imgBase+"draggable.png";
	el = draggable.element;
	
 	//log('Starting drag with '+el.innerHTML,'info','draggingStart');
 }
 
 function draggingEnd(v){
 	//$(articleDrag).src = imgBase+'1.jpg';
 	log('Ending drag','info','draggingEnd');
 }
 
 function showLoader(){
 	//$('locker').show();
	$('loader').innerHTML = "<img src='img/icons/loading.gif'/>";
 }
 
 function hideLoader(){
 	log('hiding Loader','info','shop.js');
 	$('loader').innerHTML = "";
 	//$('locker').hide();
 }
 
 
 function checkVoucherCode(){
	var code = $('voucher_code').value;
	//if()
	//alert('Code:'+code);
	var loc = new String(window.document.location);
	if (loc.indexOf("https://")!= -1) 
		var url = dnePHPBaseSSL+"/index.php?module=Shop&action=checkVoucherCode&code="+code+"&js=true&PHPSESSID="+sessionId;
	else
		var url = dnePHPBase+"/index.php?module=Shop&action=checkVoucherCode&code="+code+"&js=true&PHPSESSID="+sessionId;
	
	new Ajax.Request(url, { method: 'post',
    onSuccess:function(html,json){
		updateValidityField(json);
    }
  	});
}

function updateValidityField(json){
	if(json){
		$('code_correct').show();
		$('voucher_submit').show();
	}
	else{
		$('voucher_submit').hide();
		$('code_correct').hide();
	}
}
 