// JavaScript Document
jQuery(document).ready(function(){

    /* jQUERY goes here  */

    //rollover on submit button elements (css :hover doesn't work in IE6)
    jQuery("input.btn_add_to_bag").mouseover(function ()
    {
        jQuery(this).removeClass("btn_add_to_bag_default");
        jQuery(this).addClass("btn_add_to_bag_hover");
    });

    jQuery("input.btn_add_to_bag").mouseout(function ()
    {
        jQuery(this).removeClass("btn_add_to_bag_hover");
        jQuery(this).addClass("btn_add_to_bag_default");
    });


    if (jQuery('a.lightbox') && typeof(jQuery('a.lightbox').lightBox)=="function"){
        jQuery(function() {
            jQuery('a.lightbox').lightBox();
        });
    }




    // product detail page
    if (jQuery('#picture_base') && jQuery('#picture_base').cycle)
        jQuery('#picture_base').cycle({
            fx: 'fade',
            timeout: 0,
            pager: '#pager',
            next: '#scroll_right',
            prev: '#scroll_left'
        });

    if (jQuery('#pictures_nav a'))
        jQuery('#pictures_nav a').click(function (e)
        {
            e.preventDefault();
        });

    //centering pager
    if (jQuery('ul#pager')) {
        var pagination_width = jQuery('ul#pager').width();
        var container_width = jQuery('ul#pager').parent().parent().width();
        var available_space = container_width - 35;
        if (pagination_width > available_space){
            pagination_width = available_space;
            jQuery('ul#pager').css("width", + pagination_width);

        }
        var margin = (available_space - pagination_width)/2;
        jQuery('ul#pager').css("margin-left", + margin);
    }



    /* Community (sliding list of comments)  */
    if (jQuery('#comments_listing')) {
        jQuery('.toggle_btn').toggle(function(e){
            e.preventDefault();
            jQuery(e.target).removeClass('toggle_down');
            jQuery(e.target).addClass('toggle_up');
            jQuery(e.target).siblings('.comment_short').slideUp('fast', function(){
                jQuery(e.target).siblings('.comment_full').slideDown('slow');
            });
        }, function(e){
            e.preventDefault();
            jQuery(e.target).removeClass('toggle_up');
            jQuery(e.target).addClass('toggle_down');
            jQuery(e.target).siblings('.comment_full').slideUp('fast', function(){
                jQuery(e.target).siblings('.comment_short').slideDown('slow');
            });
        });
    }

    // expandable search panel
    jQuery('.toggle_search').toggle(function(e){
        e.preventDefault();
        jQuery('#search_panel').slideDown('fast');
        jQuery('#search_spacer').css('display','block');
        jQuery(e.target).removeClass('toggle_search_open');
        jQuery(e.target).addClass('toggle_search_close');
        jQuery(e.target).text('Close search');
    }, function(e){
        e.preventDefault();
        jQuery('#search_panel').slideUp('fast');
        jQuery('#search_spacer').css('display','none');
        jQuery(e.target).removeClass('toggle_search_close');
        jQuery(e.target).addClass('toggle_search_open');
        jQuery(e.target).text('Search');
    });

    if(jQuery('#search_panel').hasClass('open')){
        jQuery('.toggle_search').trigger('click');
        if(jQuery.browser.msie){
            var panel_height = jQuery('#search_panel').height();
            jQuery('#search_panel').height(panel_height);
        }
    }


    // help tips
    jQuery('.btn_help').click(function(e){
        e.preventDefault();
        jQuery('.help_info').hide();
        if(jQuery.browser.msie){
            jQuery('.btn_help').hide();
        }
        jQuery(this).siblings('.help_info').show();
    });

    jQuery('.btn_close_help').click(function(e){
        e.preventDefault();
        jQuery(this).parents('.help_info').hide();
        if(jQuery.browser.msie){
            jQuery('.btn_help').show();
        }
    });

    // Mobilsoft
    // expandable form
    jQuery('.toggle_link').toggle(function(e){
        e.preventDefault();
        jQuery('.toggle_form').slideDown('fast');
		jQuery(this).slideUp('fast');
//        jQuery(e.target).removeClass('toggle_search_open');
//        jQuery(e.target).addClass('toggle_search_close');
//        jQuery(e.target).text('Close search');
    }, function(e){
        e.preventDefault();
        jQuery('.toggle_form').slideUp('fast');
//        jQuery(e.target).removeClass('toggle_search_close');
//        jQuery(e.target).addClass('toggle_search_open');
//        jQuery(e.target).text('Search');
    });


	// narayan: disabled autofill end date for events form.
	//	if (jQuery('#submitEventsForm #date').length > 0) {
	//	    jQuery('#submitEventsForm #date').get(0).onchange = function(){
	//		    	var dateInput = this.value.split('/');
	//		    	var date=new Date();
	//		    	date.setDate(parseInt(dateInput[0]));
	//				date.setMonth(parseInt(dateInput[1])-1);
	//				date.setYear(parseInt(dateInput[2]));
	//				date.setDate(date.getDate()+31);
	//				jQuery('#submitEventsForm #date_end').get(0).value = formatDate(date, "dd/mm/yyyy");
	//				return false;
	//	    };
	//   }

    // This autoselects attribute dropdowns if there is only one combination of options
    var $attributeDropdowns = jQuery('select.super-attribute-select');
	if ($attributeDropdowns.length > 0) {
    	setTimeout(autoselectAttributeDropdowns, 200);
	}

});


/**
 * This autoselects attribute dropdowns if there is only one combination of options
 */
var autoselectDropdown = 0;
function autoselectAttributeDropdowns() {
		var $attributeDropdowns = jQuery('select.super-attribute-select');
	    var $dropdown = jQuery($attributeDropdowns.get(autoselectDropdown));
	    if ($dropdown) {
		    var dropdownId = $dropdown.attr('id');
		    if ($dropdown.children().length == 2) {
		    		$dropdown.val($dropdown.children().get(1).value);
		    		$(dropdownId).simulate('change'); // That's prototype
		    		autoselectDropdown = autoselectDropdown + 1;
		    		setTimeout(autoselectAttributeDropdowns, 50);
		    }
	    }
}


/**
 * Simulate event fire. Similar to 'trigger' in jQuery
 */
(function(){
  var eventMatchers = {
    'HTMLEvents': /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,
    'MouseEvents': /^(?:click|mouse(?:down|up|over|move|out))$/
  }
  var defaultOptions = {
    pointerX: 0,
    pointerY: 0,
    button: 0,
    ctrlKey: false,
    altKey: false,
    shiftKey: false,
    metaKey: false,
    bubbles: true,
    cancelable: true
  }

  Event.simulate = function(element, eventName) {
    var options = Object.extend(defaultOptions, arguments[2] || { });
    var oEvent, eventType = null;

    element = $(element);

    for (var name in eventMatchers) {
      if (eventMatchers[name].test(eventName)) { eventType = name; break; }
    }

    if (!eventType)
      throw new SyntaxError('Only HTMLEvents and MouseEvents interfaces are supported');

    if (document.createEvent) {
      oEvent = document.createEvent(eventType);
      if (eventType == 'HTMLEvents') {
        oEvent.initEvent(eventName, options.bubbles, options.cancelable);
      }
      else {
        oEvent.initMouseEvent(eventName, options.bubbles, options.cancelable, document.defaultView,
          options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY,
          options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element);
      }
      element.dispatchEvent(oEvent);
    }
    else {
      options.clientX = options.pointerX;
      options.clientY = options.pointerY;
      oEvent = Object.extend(document.createEventObject(), options);
      element.fireEvent('on' + eventName, oEvent);
    }
    return element;
  }

  Element.addMethods({ simulate: Event.simulate });
})();


var formatDate = function (formatDate, formatString) {
	if(formatDate instanceof Date) {
		var months = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
		var yyyy = formatDate.getFullYear();
		var yy = yyyy.toString().substring(2);
		var m = formatDate.getMonth();
		var mm = m < 10 ? "0" + parseInt(m+1) : parseInt(m+1);
		var mmm = months[m];
		var d = formatDate.getDate();
		var dd = d < 10 ? "0" + d : d;

		var h = formatDate.getHours();
		var hh = h < 10 ? "0" + h : h;
		var n = formatDate.getMinutes();
		var nn = n < 10 ? "0" + n : n;
		var s = formatDate.getSeconds();
		var ss = s < 10 ? "0" + s : s;

		formatString = formatString.replace(/yyyy/i, yyyy);
		formatString = formatString.replace(/yy/i, yy);
		formatString = formatString.replace(/mmm/i, mmm);
		formatString = formatString.replace(/mm/i, mm);
		formatString = formatString.replace(/m/i, m);
		formatString = formatString.replace(/dd/i, dd);
		formatString = formatString.replace(/d/i, d);
		formatString = formatString.replace(/hh/i, hh);
		formatString = formatString.replace(/h/i, h);
		formatString = formatString.replace(/nn/i, nn);
		formatString = formatString.replace(/n/i, n);
		formatString = formatString.replace(/ss/i, ss);
		formatString = formatString.replace(/s/i, s);

		return formatString;
	} else {
		return "";
	}
}


function resetField(field){
    if (field.value=="Search..." || field.value=="Search products..." || field.value=="DD" || field.value=="MM" || field.value=="YYYY"){
        field.value="";
        return false;
    }
}


function startValue(field, text){
    if (field.value==""){
        field.value=text;
        return false;
    }
}



