/**
 * @author klaper
 */

var classAdded = 'added';
var classError = 'error';
var classAdding = 'adding';

function replaceSrc(img,state){
	var src = img.src.split('/');
	var ret = '';
	for(var i = 0;i < src.length -1; i++){
		ret+=src[i]+'/';
	}
	var splited = src[src.length-1].split('.');
	if(splited.length == 2){
		if(state==''){
			return ret+splited[0]+'.'+splited[1];
		}else{
			return ret+splited[0]+'.'+state+'.'+splited[1];
		}
	}else{
		if(state==''){
			return ret+splited[0]+'.'+splited[2];
		}else{
			return ret+splited[0]+'.'+state+'.'+splited[2];
		}
	}
}

function implodeArray(arr)
{
	var str = '';
	for(var i=0;i<arr.length;i++)
	{
		if(i>0) str += '#';
		str += arr[i];
	}
	return str;
}

function ajaxRequest(productId,currentUrl,htmlId){
	var button = document.getElementById(htmlId+'_button');
	button.src = replaceSrc(button,classAdding);
	//button.addClass(classAdding);
	var req = new Request({
		url: currentUrl,
		method: 'post',
		data: {
			'product' : productId
		},
		onComplete: function(responseText, responseXml){
			onBasketUpdateSuccess(responseText, responseXml,htmlId);
		},
		onFailure: function(responseText, responseXml){
			onBasketUpdateFailure(responseText, responseXml,htmlId);
		}
	}).send();
}

function ajaxRequestList(productId,currentUrl,htmlId){
	var button = document.getElementById(htmlId+'_button');
	button.src = replaceSrc(button,classAdding);
	//button.addClass(classAdding);
	var req = new Request({
		url: currentUrl,
		method: 'post',
		data: {
			'product' : productId
		},
		onComplete: function(responseText, responseXml){
			onBasketUpdateSuccess(responseText, responseXml,htmlId);
		},
		onFailure: function(responseText, responseXml){
			onBasketUpdateFailure(responseText, responseXml,htmlId);
		}
	}).send();
}


function onBasketUpdateSuccess(responseText, responseXML,htmlId){
		if(responseText!='0'){
			if(responseText!='reload'){
				var elem = document.getElementById('basket_content');
				if(responseText==''){
					elem.innerHtml = 'Wystąpił błąd';
					var button = document.getElementById(htmlId+'_button');
					//button.removeClass(classAdding);
					//button.addClass(classError);
					button.src = replaceSrc(button,classError);
					setTimeout('document.getElementById(\''+htmlId+'_button'+'\').src = replaceSrc(document.getElementById(\''+htmlId+'_button'+'\'),\'\');',5000);
				}else{
					elem.innerHTML = responseText;
					var button = document.getElementById(htmlId+'_button');
					//button.removeClass(classAdding);
					//button.addClass(classAdded);
					button.src = replaceSrc(button,classAdded);
					setTimeout('document.getElementById(\''+htmlId+'_button'+'\').src = replaceSrc(document.getElementById(\''+htmlId+'_button'+'\'),\'\');',5000);
				}
			}else{
				history.go(0);
			}
		}
}

function onBasketUpdateFailure(responseText,responseXML){
	alert(responseText);
}

function switchBasket(reqUrl,reload){
	var select = document.getElementById('selectCart');
	if(select!=null){
		var value = select.options[select.selectedIndex].value;
		if(value!=null&&value!=0){
			var req = new Request({
				url: reqUrl,
				method: 'post',
				data: {
					'basket' : value,
					'reload' : reload
				},
				onComplete: function(responseText, responseXml){
					onBasketUpdateSuccess(responseText, responseXml);
				},
				onFailure: function(responseText, responseXml){
					onBasketUpdateFailure(responseText, responseXml);
				}
			}).send();
		}else if(value==0){
			dOStart('basketBasketNameDiv');
		}
	}
}

function cancelNewBasket(){
	dOEnd('basketBasketNameDiv');
	if(currentBasket!=null){
		var cart = document.getElementById('selectCart');
		if(cart!=null){
			for(var i=0;i<cart.options.length;i++){
				if(cart.options[i].value == currentBasket){
					cart.selectedIndex = cart.options[i].index;
				}
			}
		}
	}
}

function onNewBasketKeyPress(e,url,redirect){
	if(e.keyCode==13){
		if(basketValidator!=null){
			if(!document.getElementById('basketNameForm').onsubmit()){
				return false;
			}
		}
		return true;
	}else if(e.keyCode==27){
		return cancelNewBasket();
	}else{
		return true;
	}	
}

