// JavaScript Document


var Comparison = {
	
	visibility : "off",
	
	lastNumRows : 0,
	
	data : null,
	
	init : function() {
		var callback = function(data) {
			Comparison.data = data;
			Comparison.render();
		}
		$.get("xmlhttp/cmp_xml.php", null, callback, "html");
	},
	
	render : function(startup) {
		startup = startup || false;
		var data = loadXMLString(Comparison.data);
		
		if(data && $(data.firstChild).attr("numItems")>0) {

			$("#cmpItemRow").css("display", "none");
			
			while($("#cmpItemsTableContents > div").length > 1) {
				$("#cmpItemsTableContents > div").eq(1).remove();
			}
			
			var curItem = 0;
			$("item", data.firstChild).each(function() {
				
				var rowTpl = $("#cmpItemRow").clone();
				
				rowTpl.attr("id", "cmpItemRow_" + $(this).attr("id"));
				Comparison.assign(rowTpl, "markName", $("markName", this).text());
				Comparison.assign(rowTpl, "productName", $("productName", this).text());
				Comparison.assign(rowTpl, "description", $("description", this).text());
				
					$("#cmpItemAttribute", rowTpl).hide();
					$("attribute", this).each(function() {
						var attrTpl = $("#cmpItemAttribute").clone();
						attrTpl.attr("id", "cmpItemAttribute_");
						Comparison.assign(attrTpl, "attributeName", $("name", this).text());
						Comparison.assign(attrTpl, "attributeValue", $("value", this).text());
						Comparison.assign(attrTpl, "attributeUnit", $("unit", this).text());
						$("#cmpItemAttributeTable", rowTpl).append(attrTpl);
						attrTpl.show();
					});

				Comparison.assign(rowTpl, "cmpItemPrice", $("price", this).text());
	
				var selfRef = this;
				
				$("img", $("td:eq(2)", $("table tr", rowTpl))).get(0).onclick = function() {
					if(!window.confirm("Ürünü listeden çıkarmak istediğinizden emin misiniz?")) return;
					$("#cmpLoading").show();
					$("#cmpBottom").css("visibility", "hidden");
					$("#"+rowTpl.attr("id")).slideUp("normal", function(){
						$(this).remove();
						Comparison.lastNumRows--;
						Comparison.add($(selfRef).attr("id"), 0);
					});
				};
				
				curItem++;
				$("#cmpItemsTableContents").append(rowTpl);
				
				if(Comparison.lastNumRows==0 || (curItem > Comparison.lastNumRows && Comparison.visibility=="on")) {
					rowTpl.slideDown("slow", function() {
						if($(data.firstChild).attr("numItems")==curItem) {
							$("#cmpLoading").fadeOut("fast");
						}
					});
					
				}
				else {
					if($(data.firstChild).attr("numItems")==curItem) {
						$("#cmpLoading").fadeOut("fast");
					}
					rowTpl.show();
					//rowTpl.fadeIn();
				}
				
			});
			
			if($(data.firstChild).attr("numItems")>1) {
				$("img:eq(1)", $("#cmpBottom")).css("visibility", "visible");
			}
			else {
				$("img:eq(1)", $("#cmpBottom")).css("visibility", "hidden");
			}
			
			Comparison.lastNumRows = curItem;
			
			$("#cmpListHead").css("visibility","hidden");
			$("#cmpItemsTable").css("visibility","hidden");
			$("#cmpBottom").css("visibility","hidden");
			
			if(Comparison.visibility=="off"){
				Comparison.show();
			}
			else {
				$("#cmpListHead").css("visibility","visible");
				$("#cmpItemsTable").css("visibility","visible");
				$("#cmpBottom").css("visibility","visible");
			}

		}
		else {
			Comparison.hide();
		}
	},
	
	add : function(packageId, amount, focusCart) {
		packageId = packageId || 0;
		amount = amount || 0;
		focusCart = focusCart || false;
		
		var callback = function(data) {
			Comparison.data = data;
			Comparison.render();
		}
		
		Comparison.data = "";
		Comparison.show(true, focusCart);
		
		$.get("xmlhttp/cmp_xml.php", {package: packageId, a: amount}, callback, "html");
	},
	
	assign : function(template, variable, value) {
		template.html(template.html().replace("{$"+variable+"}", value));
	},
	
	show : function(loading, focusCart) {
		loading = loading || false;
		focusCart = focusCart || false;
		
		$("#cmpItemRow").css("display", "none");
		
		if(focusCart) {
			var targetOffset = $("#cmpPosition").offset();
			scrollTo(targetOffset.left, targetOffset.top);
		}
		
		if(Comparison.visibility=="off") {
			if(loading) {
				$("#cmpLoading").fadeIn();
			}
			
			$("#cmpContents").show();
			$("#cmpListHead").css("visibility","hidden");
			$("#cmpItemsTable").css("visibility","hidden");
			$("#cmpBottom").css("visibility","hidden");
			
			$("#myCMP").slideDown("normal", function() {

				if(!loading) {
					$("#cmpBottom").css("visibility","visible");
					$("#cmpListHead").css("visibility","visible");
					$("#cmpItemsTable").css("visibility","visible");
				}
				$("#cmpShowHide").css("visibility","visible");
				$("#cmpButtonGoster").hide();
				$("#cmpButtonGizle").show();
				Comparison.visibility = "on";

			});
		}
		else {
			if(loading) {
				$("#cmpLoading").show();
				$("#cmpListHead").css("visibility","hidden");
				$("#cmpItemsTable").css("visibility","hidden");
				$("#cmpBottom").css("visibility","hidden");
			}
		}
	},
	
	hide : function(keepButtons, deleteItems) {
		keepButtons = keepButtons || false;
		deleteItems = deleteItems || false;
		if(Comparison.visibility=="on") {
			
			if($("#cmpLoading").is(":visible")) {
				$("#cmpLoading").fadeOut("fast");
			}
			
			$("#cmpListHead").css("visibility","hidden");
			$("#cmpItemsTable").css("visibility","hidden");
			$("#cmpBottom").css("visibility","hidden");
			
			$("#myCMP").slideUp(600, function() {
				$("#cmpContents").hide();
				if(deleteItems) {
					while($("#cmpItemsTableContents > div").length > 1) {
						$("#cmpItemsTableContents > div").eq(1).remove();
					}
				}
				$("#cmpButtonGizle").hide();
				$("#cmpButtonGoster").show();
				if(!keepButtons) {
					$("#cmpShowHide").css("visibility","hidden");
				}
				Comparison.visibility = "off";
				
			});
			
		}
	},
	
	clear : function() {
		var callback = function() {
			Comparison.lastNumRows = 0;
		}
		if(!window.confirm("Sepetin içeriğini boşaltmak istediğinizden emin misiniz?")) return;
		$("#cmpListHead").css("visibility","hidden");
		$("#cmpItemsTable").css("visibility","hidden");
		$("#cmpBottom").css("visibility","hidden");
		Comparison.hide(false, true);
		$.get("xmlhttp/cmp_xml.php", {clear : "all"}, callback, "html");
	},
	
	window : null,
	
	exec : function() {
		Comparison.window = window.open("compare.php", "cmpWindow", "width=800, height=600, location=no, resizable=no, scrollbars=yes");
		Comparison.window.focus();
	}

}

jQuery.fn.extend({
  scrollTo : function(speed, easing) {
    return this.each(function() {
      var targetOffset = $(this).offset().top;
      $('html,body').animate({scrollTop: targetOffset}, speed, easing);
    });
  }
});





function loadXMLString(txt) 
{
	try //Internet Explorer
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(txt);
		return(xmlDoc); 
	}
	catch(e)
	{
		try //Firefox, Mozilla, Opera, etc.
		{
			parser=new DOMParser();
			xmlDoc=parser.parseFromString(txt,"text/xml");
			return(xmlDoc);
		}
		catch(e) {alert(e.message)}
	}
	return(null);
}