var blocked = false;
var lastId = -1;

var isIe6 = false;
var localitati = [];

function toggleSelection(elemId)
{				
	if(blocked == true && lastId !=-1 && lastId != elemId)
		return;
	
	var elName = '#sel' + elemId;				
	if($(elName))
	{										
		var stil = ($(elName).css("visibility") == 'hidden') ? '' : 'hidden';							
								
		$(elName).css("visibility", stil);				
		
		if(stil == 'hidden')
		{
			$(elName).css("z-index", 500);
		}
		else
		{
			$(elName).css("z-index", 1000);
		}
		
		
		lastId = elemId;
		blocked = !blocked;
	}								
}

function switchSelection(elemId, sval, sid,  selectId)
{												
	var selId = '#' + selectId;
	$(selId).val(sval);
					
	var elId = '#sel' + elemId + 'Value';
	$(elId).text(sval);			
	
	toggleSelection(elemId);
	
	$("div.option" + elemId).removeClass("sel");
	
	$("#" + selectId + sid).addClass("sel");															
}

function adjustSizes()
{
	var ids = ["#sel1", "#sel2", "#sel3"];
				
	for(i = 0; i < ids.length; i++)
	{
		$(ids[i]).css("height", "125px");
		$(ids[i]).css("overflow-y", "auto"); 
		$(ids[i]).css("overflow-x", "hidden"); 
	}			
}

function adjustMainSize()
{
	if($("#mainContent") && $("#mainContent").height() < 559)
	{
		var dif = 559 - $("#mainContent").height();
		
		if($("#lenghter"))
		{							
			$("#lenghter").css("height", (dif + "px"));
			$("#lenghter").css("lineHeight", (dif + "px"));
			$("#lenghter").css("fontSize", (dif + "px"));		
		}
	}
}

var canTooltip = true;
function toggleTooltip(elemId, stil)
{	
	if(!canTooltip)
		return;
		
	var elId = "#tcontent-" + elemId;	
	var pid = "#tholder-" + elemId;
	
	if($(elId))
	{																
		var elemPos = $(pid).offset();
		
		$("#tooltipContent").html($(elId).html());					
												
		var left = (parseInt(elemPos.left) - 40 ) + 'px';
		//var top  = parseInt(elemPos.top - $("#tooltip").height() + 50) + 'px';
		var top = parseInt(elemPos.top - $("#tooltip").height() + 2);		
		
		if(top < 0)
		{
			top = 0;
		}
		
		top = top + 'px';
																														
		$("#tooltip").css("left", left);
		$("#tooltip").css("top", top);					
		$("#tooltip").css('display', stil);										
	}
}

function checkDisplay(elemId, state)
{
	canTooltip = (state == 'on') ? false : true;
	
	if(state != 'on')
	{
		$("#" + elemId).css("display", "none");
	}
	else	
	{
		$("#" + elemId).css("display", "");
	}
}

var flow = 1;

//var delta = [];

function slide(pdir, gcount)
{	
	var sign = (pdir == 'left') ? -1 : 1;
	var sp = (pdir == 'left') ? "-" : "+";
  
  if(pdir == 'left' && (gcount - flow) < 3)
  	return;
  
  if(pdir == 'right' && flow < 2)
  	return;
  
  var id;
  
  for( i = 1; i <= gcount; i++)
  {  	
  	id = "#twrapper-" + i;

		var wdt = $(id).width();
		var ml = $(id).position();				
  	    	   	
  	//var lft = (delta[id]) ? delta[id] + ( sign * 179) : ( sign * 179);  	  		   	
  	  	
  	  	  	   	  	  		
  	$(id).animate(
  	{  	  
  	  left: sp + "=179px"
  	},
  	500
  	);  	  	
  		
  	//delta[id] = lft;  	  	  	  	
  }      
 
  flow = (sign == -1) ? flow + 1 : flow - 1;
 	
 	if(flow < 2)
 	{
 		$("#leftArrow").css("opacity", 0.2); 		
 	} 	  
 	else
 	{
 		$("#leftArrow").css("opacity", 1); 		  		  		
 	}	
 	
 	if((gcount - flow) < 3)
 	{
 		$("#rightArrow").css("opacity", 0.2);
 	}
 	else
 	{
 		$("#rightArrow").css("opacity", 1);
 	}
}

function adjustSlide(gcount)
{
	if($("#slideWrapper"))
	{		
		$("#slideWrapper").css("width", (gcount * (179)) + 'px');
		$("#slideWrapper").css("display", "");
		$("#leftArrow").css("display", "");
		$("#rightArrow").css("display", "");
	}
}

function triggerCartDelete(pid)
{
	var elem = "#rmcb" + pid;
	$(elem).attr("checked", "checked");
}

function setupTooltip()
{
	$.tools.tooltip.addEffect("dazTip",

		// opening animation
		function(done) {
			
			var tid = this.getTrigger().attr("id");
									
			$(".tooltip").each(function(){
					if($(this).attr("id") != tid)
						$(this).hide();
				}
			);
									
			var offset = this.getTrigger().offset();
			
			var diff = offset.top - $("#tooltip-" + tid).height();
			if(diff < 0) diff = 0;
										
			this.getTip().css("top", diff);
			
			if(!isIe6 || 1==1)
			{
				this.getTip().animate({top: '+=15', opacity: '1'}, 500, done).show();
			}
			else
			{
				this.getTip().show();
				done.call();
			}
		},
	
		// closing animation
		function(done) {
												
			if(!isIe6 || 1==1)
			{																								
				this.getTip().animate({top: '-=15', opacity: 0.2}, 500, function()  {								
					$(this).hide();
					done.call();
				});
			}
			else
			{
				this.getTip().hide();
					done.call();
			}
			
		}
	);
	
	/*
	$(".tooltipTrigger").tooltip(
		{							
			tip: "#tooltip",
			effect: "dazTip",
			delay: 1
		}
	);*/
	
	$(".tooltipTrigger").each(function(){
		var tgid = "#tooltip-" + this.id;
		
		$(this).tooltip(
			{							
				tip: tgid,
				effect: "dazTip"
			}
		);
		
	});
	
}

function prepareLocal(region_select, local_select, locals, local_input, direct_input)
{		
	var val = $(region_select).val();
	
	if(direct_input == undefined)
		direct_input = '';
	
	if(local_input == undefined)
		local_input = '';
	
	if(val == "")
	{			
		$(local_select).html('<option selected="selected" value="">Alegeti localitatea</option>');
	}
	else
	{					
		if(locals[val])
		{
			var ret = updateLocalSelect(locals[val], local_select, direct_input);
			
			if(ret === 1)
				$(local_select).focus();
		}
		else
		{
			changeLocalRequest(val, local_select, local_input, locals, direct_input);			
		}		
	}
}

function changeLocalRequest(val, city_select, local_input_wrapper, locals, direct_input)
{
	$(city_select).attr("disabled","disabled");
				
	var siblings = $(city_select).siblings();
	
	siblings.each(function(){
		if($(this).hasClass('regionloadlabel'))
		{
			$(this).css("display","none");
		}
		else if($(this).hasClass('regionloadprogress'))
		{
			$(this).css("display","block");
		}
	});
	
	$.ajax({
	    url: ('/index.php?route=responder/localisation/regioncities&region_id=' + val),
	    type: 'POST',
	    dataType: 'json',
	    timeout: 5000,
	    error: function()
	    {	
	    	if(local_input_wrapper != '' && direct_input != '' && $(local_input_wrapper) != undefined && $(direct_input) != undefined)
				{					
					$(city_select).css("display","none");
					$(local_input_wrapper).css("display","block");
					$(direct_input).css("display","block");
				}        
	    },
	    success: function(json)
	    {	       
       		locals[val] = json;
					var ret = updateLocalSelect(json, city_select, direct_input);
					$(city_select).removeAttr("disabled");
					
					if(ret === 1)
						$(city_select).focus();	       	        	        
	    },
	    complete: function()
	    {
	    	siblings.each(function(){	    		
	    		if($(this).hasClass('regionloadlabel'))
					{
						$(this).css("display","block");
					}
					else if($(this).hasClass('regionloadprogress'))
					{
						$(this).css("display","none");
					}	    			    		
	    	});	    		    	
	    }
	});				
}

function updateLocalSelect(obj, elemid, direct_input)
{
	var val = '<option value="">Alegeti localitatea</option>';	
	var seltext;
	var ret = 1;
	
	/*var inpname = "sector";
	var holder = "holderSector";
	
	if(elemid=='billing:city_id')
	{	
		inpname = "billing:sector";
		holder	=	"billingSector";
	}
	else if(elemid == 'shipping:city_id')
	{
		inpname = "shipping:sector";
		holder	=	"shippingSector";
	}*/
	
	for(var i = 0; i < obj.length; i++)
	{
		seltext = (obj[i].nume == "Bucuresti") ? "selected=\"selected\"" : '';
		
		if(seltext != '')
		{			
			if(direct_input.length > 0 && $(direct_input) != undefined)
			{				
				$(direct_input).val(getCityIdentifierValue(obj[i].localitate_id + "-" + obj[i].nume));				
			}
						
			ret = 2;																			
			/*if($(inpname) != undefined && $(holder) != undefined)
			{
				$(holder).css("display","");
				$(inpname).css("display","");
				$(inpname).focus();				
			}*/			 
		}					
						
		val = val + "<option " + seltext + " value='" + obj[i].localitate_id + "-" + obj[i].nume + "'>" + obj[i].nume + "</option>";						
	}
	
	/*if(ret == 1)
	{
		if($(inpname) != undefined && $(holder) != undefined)
		{
			$(holder).css("display","none");
			$(inpname).css("display","none");				
		}	
	}*/
	
	$(elemid).html(val);
	
	return ret;
}

function getCityIdentifierValue(str)
{
	if(str == undefined)
		return null;
	
	if(str.indexOf("-") != -1)
		return str.substring(str.indexOf("-") + 1);	
		
	return str;	
}
