// JavaScript Document
// AJAX funkcije za PLUM Wishlist
// Milan Jovanovic
// PlumDesign, Belgrade 15.10.2007

//Kreiram posebam AJAX objekat za PlumWishlist httpWishlist
var httpWishlist = createAjax();

//Funkcija za slanje AJAX http zahteva za PlumWishlist
function sendWishlistRequest(my_action,my_var){
  //Prikaz boksa za unos kolicine
  if(my_action == 'showAddItemBox'){
 	 if (httpWishlist) {
  	 httpWishlist.open('get', 'site_modules/plum_wishlist/ajax_additem_box.php?'+my_var);
   	 httpWishlist.onreadystatechange = AddItemBoxResponse;
 	 }
  }
  
  //Prikaz liste za brzi prikaz
  if(my_action == 'showFastList'){
 	 if (httpWishlist) {
  	 httpWishlist.open('get', 'site_modules/plum_wishlist/ajax_fast_view_list.php?'+my_var);
	// alert('site_modules/plum_wishlist/ajax_fast_view_list.php?'+my_var);
   	 httpWishlist.onreadystatechange = ShowFastViewListResponse;
 	 }
  }
  
  
  //Ovo je obavezno pri kretanju kataloga da se stalno prikazuje lista
  if(my_action == 'removeFromList'){
 	 if (httpWishlist) {
  	 httpWishlist.open('get', 'site_modules/plum_wishlist/ajax_fast_view_list.php?listAction=removeFromList&'+my_var);
   	 httpWishlist.onreadystatechange = ShowFastViewListResponse;
 	 }
  }  
  
  //Osvezavanje liste
  //Ovo je obavezno pri kretanju kataloga da se stalno prikazuje lista
  if(my_action == 'refrashWishlist'){
 	 if (httpWishlist) {
  	 httpWishlist.open('get', 'site_modules/plum_wishlist/ajax_fast_view_list.php?listAction=refrash');
   	 httpWishlist.onreadystatechange = ShowFastViewListResponse;
 	 }
  }
  
  
	
  httpWishlist.send('');
} 

/* Handle za Selector */
function AddItemBoxResponse() {
    if (httpWishlist.readyState == 4) {
      response = httpWishlist.responseText;
      document.getElementById('addItemBox').innerHTML = response;
    }else if(httpWishlist.readyState == 1){
      document.getElementById('addItemBox').innerHTML = "<div style='text-align:center;padding:4px;border:0px;'><img src='site_images/loading.gif'></div>";
	}
}

/* AJAX response za PlumWishlist */
function ShowFastViewListResponse() {
    if (httpWishlist.readyState == 4) {
      response = httpWishlist.responseText;
	  var myEl = document.getElementById('fast_wishlist_item');
	  if(myEl){//da ne bi javljao "Errror on page" prilikom reload-a strane
      	myEl.innerHTML = response;
	  }
    }else if(httpWishlist.readyState == 1){
      var myEl = document.getElementById('fast_wishlist_item');
	  if(myEl){//da ne bi javljao "Errror on page"reload-a strane
	  	myEl.innerHTML = "<div style='text-align:center;padding:4px;border:0px;'><img src='site_images/loading.gif'></div>";
	  }
	}
}

/* Funkcija kojom uzimam promenljive iz forme */
//prosedjujem sifru artikla kao hidden i broj komada kao text
//sifra je ID=listItemID a broj komada pieces
function FormVarsForAJAX(){
	//uzimam vrednost input elementa listItemID
	var el1 = document.getElementById('listItemID');
	var mojID = el1.value;
	
	//uzimam vrednost input elementa pieces
	var el2 = document.getElementById('pieces');
	var mojaKolicina = el2.value;
	
	if(mojaKolicina == 0){
		alert("Broj artikala mora biti veci od nule");
	}else if(mojaKolicina == ""){
		alert("Morate uneti vrednost za broj komada");
	}else{
		mojaKolicina = parseFloat(mojaKolicina);//KREIRAM FLOAT TIP
		mojaKolicina = Math.round(mojaKolicina);//ZAOKRUZUJEM NA PRVI VECI		
		//alert('listItemID='+mojID+'&qty='+mojaKolicina);
		sendWishlistRequest('showFastList','listAction=adding&listItemID='+mojID+'&itemQty='+mojaKolicina);
	}
}

/* Funkcija za dodavanje i oduzimanje kolicine pomocu strelica */
function ChangeQtyForOne(myFieldId,action){
	var myEl = document.getElementById(myFieldId);
	if(myEl){
		newVal = parseFloat(myEl.value);//pravim float od stringa
		if(action == 'plus'){
			newVal++;
		}else if(action == 'minus' && newVal > 1){//ne moze da se smanji vrednost ispod 1
			newVal--;
		}
		myEl.value = newVal;
	}
}

//prikazivanje Polja
function WLShowHide(fieldID){
	myel = document.getElementById(fieldID);

	if(myel.style.display == "block"){
		myel.style.display = "none"
	}else{
		myel.style.display = "block"
	}
}

//coloring rows
function PaintWishlistRow(row,action,color){
	//alert(row);
	if(action == "paint"){
		var myRow = document.getElementById(row);
		myRow.style.backgroundColor = color;
	}else if(action == "clear"){
		var myRow = document.getElementById(row);
		myRow.style.backgroundColor = color;
	}
}

 // PopUpMenu - koristim ga pri sortiranju po proizvodjacima i ostalo
function WLPopUpImage(IdPopUp,IdAnchorPopUp,imgSRC,Xoffset,Yoffset){ 
AnchorElement = document.getElementById(IdAnchorPopUp);

//Left i Top apsolutna pozicija
myPosition = WLfindPos(AnchorElement);

TopPos = myPosition[1];
LeftPos = myPosition[0];
TopPos = parseInt(TopPos);
LeftPos = parseInt(LeftPos);
//alert(TopPos +" - " + LeftPos);
box = document.getElementById(IdPopUp);
	if (box.style.display == "block"){
		box.style.display="none";
	}else{

		
		box.style.display="block";
		
		konacnoLeft = LeftPos + Xoffset;
		konacnoTop = TopPos + Yoffset;
		
		box.style.left = konacnoLeft.toString() + "px";
		box.style.top = konacnoTop.toString() + "px";		

		
		box.innerHTML = "<img src='"+imgSRC+"' style='border:0px;'>";
		//alert("<img src='"+imgSRC+"' >");
	} 
}

// PopUpMenu - koristim ga pri sortiranju po proizvodjacima i ostalo
function WLHideShowAddItemBox(IdPopUp,IdAnchorPopUp,xOffset,yOffset){ 

//alert(TopPos +" - " + LeftPos);
//alert(IdPopUp);
	
	if(box = document.getElementById(IdPopUp)){
	if (box.style.display == "block"){
		box.style.display="none";
	}else{
		AnchorElement = document.getElementById(IdAnchorPopUp);
		myPosition = WLfindPos(AnchorElement);
		TopPos = myPosition[1];
		LeftPos = myPosition[0];	
		TopPos = parseInt(TopPos);
		LeftPos = parseInt(LeftPos);
		
		
		box.style.display="block";
		
		konacnoLeft = LeftPos + xOffset;
		konacnoTop = TopPos + yOffset;
		
		box.style.left = konacnoLeft.toString() + "px";
		box.style.top = konacnoTop.toString() + "px";

	} 
	}else{
		return;
	}
}


/*  Apsolutna TOP i LEFT pozicija elemenata */
function WLfindPos(obj) {
/* 
Ova funkcija ne radi isto u FireFoxu i IE
razlika se javlja kada su u pitanju zadate relativne pozicije HTML elemenata "position:relative"
problem je taj sto fireFox ne regostruje rastojanje posmatranog elementa u odnosu na svog perenta ako taj element ima relativnu poziciju
meni se desilo za sajt koji centriran pomocu tabele da nije registrovao rastojanje TABLE taga od BODY perenta jer je TABLE imao position:relative
DA GA JEBEM!
*/
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}



