function sack(file){
	this.AjaxFailedAlert = "Kullandığınız browser ajax desteklememektedir. Lütfen Ajax destekli Bir Browser ile sitemizden alışveriş yapınız.\n";
	this.requestFile = file;
	this.method = "POST";
	this.URLString = "";
	this.encodeURIString = true;
	this.execute = false;
	this.onLoading = function() { };
	this.onLoaded = function() { };
	this.onInteractive = function() { };
	this.onCompletion = function() { };
	this.createAJAX = function(){
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (err) {
				this.xmlhttp = null;
			}
		}
		if(!this.xmlhttp && typeof XMLHttpRequest != "undefined")
			this.xmlhttp = new XMLHttpRequest();
		if (!this.xmlhttp){
			this.failed = true; 
		}
	};
	this.setVar = function(name, value){
		if (this.URLString.length < 3){
			this.URLString = name + "=" + value;
		} else {
			this.URLString += "&" + name + "=" + value;
		}
	}
	this.encVar = function(name, value){
		var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value);
	return varString;
	}
	this.encodeURLString = function(string){
		varArray = string.split('&');
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split('=');
			if (urlVars[0].indexOf('amp;') != -1){
				urlVars[0] = urlVars[0].substring(4);
			}
			varArray[i] = this.encVar(urlVars[0],urlVars[1]);
		}
	return varArray.join('&');
	}
	this.runResponse = function(){
		eval(this.response);
	}
	this.runAJAX = function(urlstring){
		this.responseStatus = new Array(2);
		if(this.failed && this.AjaxFailedAlert){ 
			alert(this.AjaxFailedAlert); 
		} else {
			if (urlstring){ 
				if (this.URLString.length){
					this.URLString = this.URLString + "&" + urlstring; 
				} else {
					this.URLString = urlstring; 
				}
			}
			if (this.encodeURIString){
				var timeval = new Date().getTime(); 
				this.URLString = this.encodeURLString(this.URLString);
				this.setVar("rndval", timeval);
			}
			if (this.element) { this.elementObj = document.getElementById(this.element); }
			if (this.xmlhttp) {
				var self = this;
				if (this.method == "GET") {
					var totalurlstring = this.requestFile + "?" + this.URLString;
					this.xmlhttp.open(this.method, totalurlstring, true);
				} else {
					this.xmlhttp.open(this.method, this.requestFile, true);
				}
				if (this.method == "POST"){
  					try {
						this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')  
					} catch (e) {}
				}
				this.xmlhttp.send(this.URLString);
				this.xmlhttp.onreadystatechange = function() {
					switch (self.xmlhttp.readyState){
						case 1:
							self.onLoading();
						break;
						case 2:
							self.onLoaded();
						break;
						case 3:
							self.onInteractive();
						break;
						case 4:
							self.response = self.xmlhttp.responseText;
							self.responseXML = self.xmlhttp.responseXML;
							self.responseStatus[0] = self.xmlhttp.status;
							self.responseStatus[1] = self.xmlhttp.statusText;
							self.onCompletion();
							if(self.execute){ self.runResponse(); }
							if (self.elementObj) {
								var elemNodeName = self.elementObj.nodeName;
								elemNodeName.toLowerCase();
								if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){
									self.elementObj.value = self.response;
								} else {
									self.elementObj.innerHTML = self.response;
								}
							}
							self.URLString = "";
						break;
					}
				};
			}
		}
	};
	this.createAJAX();
}
var flyingSpeed = 8;
var url_addProductToBasket = 'alisveris_sepetim_urun_ekle.php';
var url_removeProductFromBasket = 'alisveris_sepetim_urun_sil.php';
var shopping_cart_div = false;
var flyingDiv = false;
var currentProductDiv = false;
var shopping_cart_x = false;
var shopping_cart_y = false;
var slide_xFactor = false;
var slide_yFactor = false;
var diffX = false;
var diffY = false;
var currentXPos = false;
var currentYPos = false;
var ajaxObjects = new Array();
function shoppingCart_getTopPos(inputObj){		
  var returnValue = inputObj.offsetTop;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop;
  }
  return returnValue;
}
function shoppingCart_getLeftPos(inputObj){
  var returnValue = inputObj.offsetLeft;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
  }
  return returnValue;
}
function sepetime_ekle(urun_alani,urun_kodu,urun_ozellikleri){
	var giren_uyeyse_rutbe	= document.getElementById('giren_uyeyse_rutbe').value;
	if ( giren_uyeyse_rutbe == 0 ){
		return alert('Sepet Pasif\nAktiflenmesi icin uye girisi yapiniz.');
	}
	if(!shopping_cart_div)shopping_cart_div = document.getElementById('shopping_cart');
	if(!flyingDiv){
		flyingDiv = document.createElement('DIV');
		flyingDiv.style.position = 'absolute';
		flyingDiv.style.zIndex = '99999';
		flyingDiv.style.border = '2px solid #F27900';
		flyingDiv.style.backgroundColor = '#FFC1A4';
		document.body.appendChild(flyingDiv);
	}
	shopping_cart_x = shoppingCart_getLeftPos(shopping_cart_div);
	shopping_cart_y = shoppingCart_getTopPos(shopping_cart_div);
	currentProductDiv = document.getElementById(urun_alani);
	currentXPos = shoppingCart_getLeftPos(currentProductDiv);
	currentYPos = shoppingCart_getTopPos(currentProductDiv);
	diffX = shopping_cart_x - currentXPos;
	diffY = shopping_cart_y - currentYPos;
	var shoppingContentCopy = currentProductDiv.cloneNode(true);
	shoppingContentCopy.id='';
	flyingDiv.innerHTML = '';
	flyingDiv.style.left = currentXPos + 'px';
	flyingDiv.style.top = currentYPos + 'px';
	flyingDiv.appendChild(shoppingContentCopy);
	flyingDiv.style.display='block';
	flyingDiv.style.width = currentProductDiv.offsetWidth + 'px';
	flyToBasket(urun_alani,urun_kodu,urun_ozellikleri);
}
function flyToBasket(urun_alani,urun_kodu,urun_ozellikleri){
	var maxDiff = Math.max(Math.abs(diffX),Math.abs(diffY));
	var moveX = (diffX / maxDiff) * flyingSpeed;;
	var moveY = (diffY / maxDiff) * flyingSpeed;	
	currentXPos = currentXPos + moveX;
	currentYPos = currentYPos + moveY;
	flyingDiv.style.left = Math.round(currentXPos) + 'px';
	flyingDiv.style.top = Math.round(currentYPos) + 'px';	
	if(moveX>0 && currentXPos > shopping_cart_x){
		flyingDiv.style.display='none';		
	}
	if(moveX<0 && currentXPos < shopping_cart_x){
		flyingDiv.style.display='none';		
	}
	if(flyingDiv.style.display=='block')setTimeout('flyToBasket("' + urun_alani + '","' + urun_kodu + '","'+urun_ozellikleri+'")',10); else ajax_urun_ekle(urun_alani,urun_kodu,urun_ozellikleri);	
}
function showAjaxBasketContent(ajaxIndex,urun_ozellikleri){
	var itemBox = document.getElementById('shopping_cart_items');
	var productItems = ajaxObjects[ajaxIndex].response.split('|||');	// Ajax gelen simge olarak yanıt Breaking
	if( productItems[0] == 'NO' ){
		alert(productItems[1]);
	} else {
		if(productItems[0] < 100){	// birden fazla sepete eklenmeyen urunler...
			var tr = itemBox.insertRow(-1);
			tr.id = 'shopping_cart_items_product' + encodeURIComponent(urun_ozellikleri);
			var td = tr.insertCell(-1);
			td.innerHTML = '1';					// Ürün sayısı
			var td = tr.insertCell(-1);
			td.innerHTML = productItems[1]; 	// Açıklama
			var td = tr.insertCell(-1);
			td.style.textAlign = 'right';
			td.innerHTML = productItems[2]; 	// Fiyat	
			var td = tr.insertCell(-1);
			var span = document.createElement('span');
			td.appendChild(span);
			span.style.cursor = 'pointer';
			span.onclick = function(){ removeProductFromBasket(encodeURIComponent(urun_ozellikleri),productItems[0],urun_ozellikleri); };
			span.innerHTML = '<img src="resimler/yanlis.gif" title="Sil" border="0">';
		}else if(document.getElementById('shopping_cart_items_product' + productItems[0])){	// Bu kimliğe sahip bir ürün Sepette allready bulunmakta - öğeler numarası eklemek
			var row = document.getElementById('shopping_cart_items_product' + productItems[0]);
			var items = row.cells[0].innerHTML /1;
			items = items + 1;
			row.cells[0].innerHTML = items;
		}else{	// Ürün Sepette allready değil - yeni bir satır eklemek
			var tr = itemBox.insertRow(-1);
			tr.id = 'shopping_cart_items_product' + productItems[0]
			var td = tr.insertCell(-1);
			td.innerHTML = '1';					// Ürün sayısı
			var td = tr.insertCell(-1);
			td.innerHTML = productItems[1]; 	// Açıklama
			var td = tr.insertCell(-1);
			td.style.textAlign = 'right';
			td.innerHTML = productItems[2]; 	// Fiyat	
			var td = tr.insertCell(-1);
			var span = document.createElement('span');
			td.appendChild(span);
			span.style.cursor = 'pointer';
			span.onclick = function(){ removeProductFromBasket(productItems[0],productItems[0],urun_ozellikleri); };
			span.innerHTML = '<img src="resimler/yanlis.gif" title="Sil" border="0">';
		}
		sepet_tutarini_guncelle();
		ajaxObjects[ajaxIndex] = false;
	}
}
function sepet_tutarini_guncelle(){
	var itemBox = document.getElementById('shopping_cart_items');
	// Toplam fiyat hesaplama ve sepeti öğeler ile tablo aşağıda gösteriliyor
	var totalPrice = 0;
	if(document.getElementById('shopping_cart_totalprice')){
		for(var no=1;no<itemBox.rows.length;no++){
			totalPrice = totalPrice + (itemBox.rows[no].cells[0].innerHTML.replace(/[^0-9]/g) * itemBox.rows[no].cells[2].innerHTML);
		}
		document.getElementById('shopping_cart_totalprice').innerHTML = totalPrice.toFixed(2);
	}	
}
function removeProductFromBasket(sepetdenbunusil,urun_kodu,urun_ozellikleri){
	var productRow = document.getElementById('shopping_cart_items_product' + sepetdenbunusil);
	var numberOfItemCell = productRow.cells[0];
	if(numberOfItemCell.innerHTML == '1'){
		productRow.parentNode.removeChild(productRow);
	}else{
		numberOfItemCell.innerHTML = numberOfItemCell.innerHTML/1 - 1;
	}
	sepet_tutarini_guncelle();
	ajaxRemoveProduct(urun_kodu,urun_ozellikleri);
}
function ajaxValidateRemovedProduct(ajaxIndex){
	if(ajaxObjects[ajaxIndex].response!='OK')alert('Hata: Sepetden Urun Silinemedi.\n\nMuhtemel Nedenleri:\nOturum sureniz bitmis olabilir\nSitemizde gecici bir sorun olabilir');
}
function ajaxRemoveProduct(urun_kodu,urun_ozellikleri){
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = url_removeProductFromBasket;	// Bu dosyaya kaydetme ürün
	ajaxObjects[ajaxIndex].setVar('urun_kodu',urun_kodu);
	ajaxObjects[ajaxIndex].setVar('urun_ozellikleri',urun_ozellikleri);
	ajaxObjects[ajaxIndex].onCompletion = function(){ ajaxValidateRemovedProduct(ajaxIndex,urun_ozellikleri); };	// O dosya sonra idam edilecektir belirtin işlevi bulundu
	ajaxObjects[ajaxIndex].runAJAX();		// Yürütme AJAX fonksiyon		
}
function ajax_urun_ekle(urun_alani,urun_kodu,urun_ozellikleri){
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = url_addProductToBasket;	// Bu dosyaya kaydetme ürün
	ajaxObjects[ajaxIndex].setVar('urun_kodu',urun_kodu);
	ajaxObjects[ajaxIndex].setVar('urun_ozellikleri',urun_ozellikleri);
	ajaxObjects[ajaxIndex].onCompletion = function(){ showAjaxBasketContent(ajaxIndex,urun_ozellikleri); };	// O dosya sonra idam edilecektir belirtin işlevi bulundu
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}
