var cloudEl = $("#shop-categories");

function closeCloud(){
  $(".subcats").hide();
}

function createCookie(name,value,days) {
if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name){
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for (var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ')
      c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0)
      return c.substring(nameEQ.length, c.length);
  }
  return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

function hideSubscription(){
    $("#floating-newsletter-box").slideUp("fast", function(){
        $(".footer").addClass("no-floating-subscriptions");
        createCookie('hideSubscription', '1', 30);
    });
}


function GoTo(url){
    document.location = url;
}

function loadSubCategories(categoryID, level)
{
    $.get("loadSubCategories.php?cl=service&fnc=loadSubCategories", { categoryID: categoryID, level: level+1 },
    function(data){
      if (data != ''){
      $("li#category"+categoryID).innerHTML = data;
      var liID = "li#category"+categoryID;

      $(liID).html(data);

      }
    });
}

function sss_initCallback(carousel) {
    jQuery('.pager-control a').bind('click', function() {
        carousel.scroll(jQuery.jcarousel.intval(jQuery(this).text()));
        return false;
    });

    jQuery('.slideNext').bind('click', function() {
        carousel.next();
        setNextNav();
        return false;
    });

    jQuery('.slidePrev').bind('click', function() {
        carousel.prev();
        setPrevNav();
        return false;
    });
};
function sss_buttonNextCallback(carousel, button, enabled) {
    if(enabled){
    $(".slideNext").removeClass("disabled");
    }else{
    $(".slideNext").addClass("disabled");
    }
};

function sss_buttonPrevCallback(carousel, button, enabled) {
    if(enabled){
    $(".slidePrev").removeClass("disabled");
    }else{
    $(".slidePrev").addClass("disabled");
    }
};

function setNextNav(){
        curPosition = $(".pager-control").find("li.active");
        if($(curPosition).hasClass("last")){
        }else{
        $(curPosition).removeClass("active");
        $(curPosition).next("li").addClass("active");
        }
}
function setPrevNav(){
        curPosition = $(".pager-control").find("li.active");
        if($(curPosition).hasClass("first")){
        }else{
        $(curPosition).removeClass("active");
        $(curPosition).prev("li").addClass("active");
        }
}

jQuery.fn.labelify = function(settings) {
  settings = jQuery.extend({
    text: "title",
    labelledClass: ""
  }, settings);
  var lookups = {
    title: function(input) {
      return $(input).attr("title");
    },
    label: function(input) {
      return $("label[for=" + input.id +"]").text();
    }
  };
  var lookup;
  var jQuery_labellified_elements = $(this);
  return $(this).each(function() {
    if (typeof settings.text === "string") {
      lookup = lookups[settings.text]; // what if not there?
    } else {
      lookup = settings.text; // what if not a fn?
    };
    // bail if lookup isn't a function or if it returns undefined
    if (typeof lookup !== "function") { return; }
    var lookupval = lookup(this);
    if (!lookupval) { return; }

    // need to strip newlines because the browser strips them
    // if you set textbox.value to a string containing them
    $(this).data("label",lookup(this).replace(/\n/g,''));
    $(this).focus(function() {
      if (this.value === $(this).data("label")) {
        this.value = this.defaultValue;
        $(this).removeClass(settings.labelledClass);
      }
    }).blur(function(){
      if (this.value === this.defaultValue) {
        this.value = $(this).data("label");
        $(this).addClass(settings.labelledClass);
      }
    });

    var removeValuesOnExit = function() {
      jQuery_labellified_elements.each(function(){
        if (this.value === $(this).data("label")) {
          this.value = this.defaultValue;
          $(this).removeClass(settings.labelledClass);
        }
      })
    };

    $(this).parents("form").submit(removeValuesOnExit);
    $(window).unload(removeValuesOnExit);

    if (this.value !== this.defaultValue) {
      // user already started typing; don't overwrite their work!
      return;
    }
    // actually set the value
    this.value = $(this).data("label");
    $(this).addClass(settings.labelledClass);

  });
};

//DOM ready
$(function(){
    $("#floating-newsletter-box .close").click(function(){
        hideSubscription();
        return false;
    });

     $(".inner-label").labelify({labelledClass:"default-label"});
     $("a[rel='external']").attr("target", "_blank");

     $(".user-data select").sb();
     $("select.fixed-width").sb("options", { fixedWidth: true });

     $("a.exp").click(function () {
         $("div.hide").slideToggle("fast");
     });

     $("a.userNewAdd").click(function () {
        $("table.hide").slideToggle("fast");
     });


     $(".pager-control a").click(function(){
             getActElClass = $(this).attr("class");
            $(".pager-control li").removeClass("active");
            $(".pager-control a."+getActElClass+"").parent("li").addClass("active");

     });

     $('#refineListSmallLink').click(function(e){
         e.preventDefault();
         $('#rifineListBlock .refineListSmall').hide();
         $('#rifineListBlock .refineListAll').each(function(){
             $(this).show();
         });
     });
     $('#refineListAllLink').click(function(e){
         e.preventDefault();
         $('#rifineListBlock .refineListSmall').show();
         $('#rifineListBlock .refineListAll').each(function(){
             $(this).hide();
         });
     });

     $('#subItems > ul').tabs();
     var viewportHeight = window.innerHeight ? window.innerHeight : $(window).height();

     $("#categories li.rootCat[id!=exp]").hover(function(e){
        var relativeY = e.pageY;
        var catMenu = $(this);
        if (catMenu.hasClass("lastCat")){
            addHeight = 10;
        }else{
            addHeight = 0;
        }
        if (false && relativeY > viewportHeight / 2 && catMenu.children("ul").length) {
            subEl = catMenu.children("ul");
            elHeight = catMenu.outerHeight();
            subElPos = (catMenu.children("ul").outerHeight() - elHeight - addHeight) * -1;
            subElPosOrig = subElPos;
            if (subElPos < 0) {
                subElPos = catMenu.offset().top * -1;
                if (subElPos < subElPosOrig) {
                    subElPos = subElPosOrig;
                }
            }
            $(subEl).css("top",subElPos + "px");
            //console.log("Sub el:"+$(subEl).offset().top);
            //console.log("Mouse position: " + relativeY + " Push Up by: "+ subElPos + " Position: " + subEl.offset().top);
        }
        else {
        }
    }, function(){

    });

    // Equalize column heights
    var tallest = 0;
    $('.confirm-user-data dl').each(function(){
        thisHeight = $(this).outerHeight();
        if (thisHeight > tallest) tallest = thisHeight;
    })
    .css({
        'overflow': 'auto',
        'height': tallest
    });



    $("#searchparam").autocomplete(baseURL+'cl=ajax_fastsearch&fnc=getlist', {
        minChars: 2,
        cacheLength: 100,
        max: 10,
        width: 362,
        matchContains: true
        }
    );

    function createPromoSlider(xml){

                $("#promo-slides").empty();
                $('<ul/>', {id: 'slider'}).prependTo('#promo-slides');
                $("<div id='slide-navigation' class='clear'>").appendTo('#promo-slides');
                $('#slide-navigation').append("<a href='http://www.e-senukai.lt/index.php?cl=promolist&amp;promoid=oxtop5' class='goto-all-offers'>Peržiūrėkite prekių akcijas</a>");
                $("<p id='slide-pager'>").appendTo('#slide-navigation');

                $(xml).find("Banner").each(function(){
                        $("#slider").append("<li><a href='"+$(this).find("Link").text()+"'><img src='/"+$(this).find("Source").text() + "' alt=''></a></li>");
                });
                if ($('#slider').length>0)
                {
	                $('#slider').carouFredSel({
	                    align: false,
	                    scroll:{
	                        fx: "crossfade"
	                    },
	                    items:{
	                        visible:1,
	                        start: 0
	                    },
	                    auto: {
	                        items: 1,
	                        pauseOnHover: true,
	                        duration: 1000,
	                        pauseDuration: 4000
	                    },
	                    pagination: {
	                        container: "#slide-pager",
	                        pauseOnHover: true
	                    }
	                });
                }
    }

    $.ajax({
        type: "GET",
        url: "promo.xml",
        dataType: "xml",
        success: function(data){
                createPromoSlider(data);
        }
    });

    $("select[name=sort]").change(function(){
        newLocation = $(this).val();
        location.replace(newLocation);
    });

    $(".widget-head").click(function(){
       var heading = $(this);
        if (heading.hasClass("toggle-filter")) {
            var cookieName = heading.children("input.value-container").attr("name");
            $(this).next(".widget").slideToggle("fast", function(){
                heading.toggleClass("expanded");

                if (heading.hasClass("expanded")) {
                    eraseCookie("toggle_" + cookieName);
                }
                else {
                    createCookie("toggle_" + cookieName, "1");
                }
            });
            return false;
        }else{
            return false;
        }
    });

    $(".expand-filter-set").click(function() {
        $(this).prev(".extended-list").slideToggle();
        return false;
    });

    $(".widget li a").click(function(){
        var attrValue = $(this).attr("rel");
        $(this).parents(".widget").prev(".widget-head").children("input.value-container").val(attrValue);
        $("#filterlist2").submit();
        return false;

    });

    $("#picture-promotions a").each(function(){
       var el = $(this);
       if(el.index() % 3 == 0){
           el.addClass("side-element");
       }
    });

    $("a.reset").click(function(){
        //var attrValue = $(this).attr("rel");
        $(this).parents(".widget").prev(".widget-head").children("input.value-container").val('');
        $("#filterlist2").submit();
        return false;
    });

    if($("#cart-exp").length > 0){
        $(".toggle-minicart").click(function(){
           $("#cart-exp").slideToggle();
           $("#minicart").toggleClass("expanded");
        });
    }
    $("#account-dropdown-trigger").click(function(){
        $(".user-links").slideToggle();
        return false;
    });
    $("a[rel='zzoom']").colorbox({opacity:0.6, speed:200, close:"Uždaryti", next:"Kitas", previous:"Ankstesnis", current:""});
    $("a.zzoom").click(function(){
        $("#product_img").parent("a").click();
        return false;
    });


    $(".itemPics a").click(function(){
        newPic = $(this).children("img").attr("longdesc");
        $("#product_img").attr("src", newPic);
        return false;
    });


    if(($(".status.error").length > 0 || $("#view").hasClass("fill-data")) && ($(".user-data h2").length>0) ){
        var elementTop = $(".user-data h2").offset();
        $("html, body").animate({scrollTop: elementTop.top - 100}, {duration:500, easing:"linear"});
    }

    $("#start-fill-data").click(function(){
        var elementTop = $(".user-data h2").offset();
        $("html, body").animate({scrollTop: elementTop.top - 100}, {duration:500, easing:"linear"});
        return false;
    });

    //Checkout JS part:

    $("#user-options").click(function(){
        if ($("input[name='userOption']:checked").val()==1)
        {
            $("#passwdord1").hide();
            $("#forgotpwd").hide();
            $("#passwdord2").hide();
            $("#submitLogin").hide();
            $("#bill-addr").slideDown();
            $('#updateOrderInfo input[name="fnc"]').val('');
            $('#updateOrderInfo input[name="cl"]').val('basket');
            $('#updateOrderInfoOption').val(1);
            $('input[name="lgn_pwd"]').attr("disabled",true);
            $('input[name="lgn_pwd2"]').attr("disabled",true);
            $('#updateOrderInfo input[name="fnc"]').val('createuser');
        }
        else if ($("input[name='userOption']:checked").val()==2)
        {
            $("#passwdord1").slideDown();
            $("#forgotpwd").slideDown();
            $("#passwdord2").hide();
            $("#bill-addr").hide();
            $("#submitLogin").slideDown();
            $('#updateOrderInfo input[name="fnc"]').val('login');
            $('#updateOrderInfo input[name="cl"]').val('basket');
            $('#updateOrderInfoOption').val(2);
            $('input[name="lgn_pwd"]').removeAttr("disabled");

        }
        else if ($("input[name='userOption']:checked").val()==3)
        {
            $("#passwdord1").slideDown();
            $("#forgotpwd").hide();
            $("#passwdord2").slideDown();
            $("#bill-addr").slideDown();
            $("#submitLogin").hide();
            $('#updateOrderInfo input[name="fnc"]').val('createuser');
            $('#updateOrderInfo input[name="cl"]').val('basket');
            $('#updateOrderInfoOption').val(3);
            $('input[name="lgn_pwd"]').removeAttr("disabled");
            $('input[name="lgn_pwd2"]').removeAttr("disabled");
        }
    });

    $("#company").click(function(){
        $("#companyUl").slideToggle();
    });

    $("#editInvAddr").click(function(){
        if ($("#delivery-address").is(":visible")) {
            $("#addDelAddr").click();
        }
        $("#bill-addr").slideToggle();
    });

    $("#addDelAddr").click(function(){
        $("#delivery-address").slideToggle();
        $("#bill-addr").hide();
        if ($("#showHideDelAddr").attr('name')=='blshowshipaddress')
        {
            $("#showHideDelAddr").attr('name','blhideshipaddress');
        }
        else
        {
            $("#showHideDelAddr").attr('name','blshowshipaddress');
        }
    });

    $("ul.payment-options input").click(function(){
        $.get("index.php?cl=ajax_basket&fnc=setPaymentID&paymentid="+$('ul.payment-options input[name="paymentid"]:checked').val());
    });

    $("ul.delivery-options input").click(function(){
        $.get(baseURL+"cl=ajax_basket&fnc=saveLogistics&logistics[deliverytime]="+$('ul.delivery-options input[name="logistics[deliverytime]"]:checked').val());
    });


    var actAnchor = $("#shop-categories > li");
    var timeout;
    actAnchor.mouseenter(function(e){
        var target = $(this);
        var subElements = target.find("dl").length;
        var colWidth = 230;

        var targetPosition = target.position().left;
        var safeWidth = 966-targetPosition;
        var correctPos = targetPosition + target.outerWidth() - (colWidth*subElements + 20)-1;

        if(correctPos < 0 ){
          var correctPos = 0;
        }
        //console.log("targetPosition: "+targetPosition+" safeWidth: "+safeWidth+" Subs width:"+$(".subcats", target).width());

        if(subElements < 4){
            $(".subcats",target).css("width", "auto");
            if($(".subcats",target).width() > safeWidth){
                $(".subcats",target).css("left", correctPos);
            }
        }

        //$("#shop-categories .subcats").hide();
        timeout = setTimeout(function(){
            target.children('.subcats').css("display", "block");
            target.addClass("selected");
        }, 100);


  });

  actAnchor.mouseleave(function(e){
      clearTimeout(timeout);
      $("#shop-categories .subcats").css("display", "none");
      $("#shop-categories > li").removeClass("selected");
  });




    $("a.close").click(function(){
        closeCloud();
        return false;
    });

    $(document).keydown( function( e ) {
       if( e.which == 27 && $(".subcats").is(":visible")) {  // escape, close box
            closeCloud();
       }
    });

    $('#order').submit(function() {
    	$('.default_confirmbutton').attr("disabled",true);
	});

});


function numbersonly(myfield, e, dec)
{
    var key;
    var keychar;

    if (window.event)
       key = window.event.keyCode;
    else if (e)
       key = e.which;
    else
       return true;
    keychar = String.fromCharCode(key);

    // control keys
    if ((key==null) || (key==0) || (key==8) ||
        (key==9) || (key==13) || (key==27) )
       return true;

    // numbers
    else if ((("0123456789").indexOf(keychar) > -1))
       return true;

    // decimal point jump
    else if (dec && (keychar == "."))
       {
       myfield.form.elements[dec].focus();
       return false;
       }
    else
       return false;
}

