// JavaScript Document


// code yanked from the Yahoo media player. Thanks, Yahoo.
if (! ("console" in window) || !("firebug" in console)) {
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group"
                 , "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
    window.console = {};
    for (var i = 0; i <names.length; ++i) window.console[names[i]] = function() {};
}


//jquery extensions
$.postJSON = function(url, data, callback) {
	$.post(url, data, callback, "json");
};

//misc functions
function IsNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }



function serialize_for_php(val)
{
   switch (typeof(val))
   {
   case "number":
       return (Math.floor(val) == val ? "i" : "d") + ":" +
           val + ";";
   case "string":
       return "s:" + val.length + ":\"" + val + "\";";
   case "boolean":
       return "b:" + (val ? "1" : "0") + ";";
   case "object":
       if (val == null)
       {
           return "N;";
       }
       else if ("length" in val)
       {
           var idxobj = { idx: -1 };
           return "a:" + val.length + ":{" + val.map(
               function (item)
               {
                   this.idx++;
                   var ser = serialize_for_php(item);
                   return ser ?
                       serialize_for_php(this.idx) + ser :
                       false;
               }, idxobj).filter(
               function (item)
               {
                   return item;
               }).join("") + "}";
       }
       else
       {
           var class_name = getObjectClass(val);
           if (class_name == undefined)
           {
               return false;
           }
           var props = new Array();
           for (var prop in val)
           {
               var ser = serialize_for_php(val[prop]);
               if (ser)
               {
                   props.push(serialize_for_php(prop) + ser);
               }
           }
           return "O:" + class_name.length + ":\"" +
               class_name + "\":" + props.length + ":{" +
               props.join("") + "}";
       }
   case "undefined":
       return "N;";
   }
   return false;
}

function top_search_submit(e) {
	new_filter_object['c'] = new Array();
	new_filter_object['m'] = new Array();
	new_filter_object['f'] = new Array();
	new_filter_object['minp'] = 0;
	new_filter_object['maxp'] = 0;
	
	
	if($('#top-search-category').val()>0) new_filter_object['c'][0] = $('#top-search-category').val();
	new_filter_object['s'] = $('#top-search-string').val();
	if(IsNumeric($('#top-search-minp').val())) new_filter_object['minp'] = $('#top-search-minp').val();
	if(IsNumeric($('#top-search-maxp').val())) new_filter_object['maxp'] = $('#top-search-maxp').val();
	
	////console.log(new_filter_object);
	////console.log($.toJSON(new_filter_object));
	
	
	$.postJSON('/proxy/left.filter.proxy.php',
		{
			filter_type : 'shorthand', 
			filter_serialized: $.toJSON(new_filter_object)
		},
		function(data) {filter_shorthand_callback(data)});
}
function filter_shorthand_callback(json) {
	window.location = 'product_list.php?&filter='+json.short_url;
	return false;
}
function price_slide_callback(e) {
	$('#left-filter-minp').val($(e).slider('values', 0))
	$('#left-filter-maxp').val($(e).slider('values', 1))
}

function switch_currency(e) {
	$e = $(e);
	var switch_to = $e.metadata().currency;
	//console.log(switch_to);
	var val = 0;
	var cur = Array();
	cur['EUR'] = 0.010362694300518134715025906735751;
	cur['RSD'] = 96.5;
	if(switch_to=='RSD') {
		$e.html('RSD&raquo;&#8364;');
		$e.metadata().currency = 'EUR';
	} else {
		$e.html('&#8364;&raquo;RSD')
		$e.metadata().currency = 'RSD';
	}
	
	$('.price-string').each(function (i) {
		$i = $(this);
		$i.text(Math.round($i.text()*cur[switch_to]))
	 });
/*	switch(switch_to) {
		case 'EUR':
			$('.price-string').each(function (i) {
				$i = $(this);
				if($i.metadata().currency=='RSD') $i.text($i.text()*cur[switch_to])
				$i.metadata().currency='EUR';
			  });

		
		break;
		case 'RSD':
			$('.price-string').each(function (i) {
				$i = $(this);
				if($i.metadata().currency=='EUR') $i.text($i.text()*cur[switch_to])
				$i.metadata().currency='RSD';
			  });
		
		break;
	}
*/
}

//immidiate execution
$(function(){
	$('.left-filter-link').unbind('click').click(function() { load_filter_panel(this); return false; });
	//$('.left-cancel-filter-link').unbind('click').click(function() { load_filter_cancel(this); return false; });
	$('.left-filter-submit').unbind('click').click(function() { get_filter_shorthand(this); return false; });
	$('#top-search-button').unbind('click').click(function() { top_search_submit(this); return false; }); //filter.functions.js
	$('.top-search-advanced-link').unbind('click').click(function() { $('.top-search-advanced-holder').slideToggle(); return false; }); //filter.functions.js
	$('.page-currency-switch').unbind('click').click(function() { switch_currency(this); return false; });
	$("#price-slider").slider(
		{
			animate: true,
			min:0,
			max: page_filter_max_price,
			range: true,
			values: [page_filter_set_min_price,page_filter_set_max_price]
			
		}					
	).bind('slide', function(event, ui) { price_slide_callback(this) } );
	$('.pil-spec').each(function (i) {
		$e = $(this);
		var len;
		//console.log(i + ' = ' + $e.width());
		while($e.width()>470) {
			$e.children().remove(':last-child')
		}

	});
	
	 $('.product-page-info .product-img-link').lightBox();
	 $('.magazine-shelf a.big-issue,.magazine-shelf a.issuu-link,.magazine-shelf a.sm-link ').fancybox({
				'padding'			: 0,
				'width'				: 600,
				'height'			: 435,
				'overlayColor'		: '#333',
				'autoScale'			: false,
				'transitionIn'		: 'none',
				'transitionOut'		: 'none'
			});



});


