function zoom_in(a){
    var img = $(a).find('img');
    var small_w = img.width();
    var small_h = img.height();
    var pos =     img.offset();
    var src = str_replace('/medium/','/large/',img.attr('src'));
        src = str_replace('/kampaania/','/large/',img.attr('src'));
    var close = $(a).next('img');
    $('body').append('<div class="zoom_background"></div><img src="'+src+'" alr="close" class="zoom_image" />');
    $('body').append(close);

    var img2 = $('.zoom_image');
    var target_w = img2.width();
    var target_h = img2.height();

    if(parseInt(target_w)<small_w){
        target_w = 671;
        target_h = parseInt((target_w * parseInt(small_h))/parseInt(small_w));
    }
    img2.css({
        'width':small_w,
        'height':small_h,
        'left':pos.left,
        'top':pos.top
    });
    img2.show();
    $('.zoom_background').fadeIn(300);
    img2.animate({
        width: target_w,
        height: target_h
    }, 300, function() {
        close.fadeIn(500).css({
            'left':(pos.left+target_w-20),
            'top':(pos.top-20)
        });
        $('.zoom_image,.zoom_background,.close_zoom_image').click(function(){
            $(a).after(close);
            close.hide();
            $('.zoom_background').fadeOut(300);
            $('.zoom_image').animate({
                width: small_w,
                height: small_h
            }, 300, function() {
                $('.zoom_background,.zoom_image').remove();
            });
        });
    });
}

function prep_magazine_to_basket(a,is_camp){
    var form = $(a).parents('.magazie_detail_form');
    var radio = form.find(':checked');
    var has_main = true;

    if(is_camp){
        form = $(a).parents('.camp_order_table_form');
        radio = form.find(':checked');

        has_main = false;
        radio.each(function(){
            if($(this).attr('name').search("main") != -1){
                has_main = true;
            }
        });
    }
    
    if(radio.length>0 && has_main){

        if($(a).hasClass('is_rowsx')){
           $.post("index.php",form.serialize());         
           var action = radio.val();  
           
           
           var new_key = randString();
           $('body').append('<form action="'+action+'" id="'+new_key+'" target="_blank" method="post"></form>');
           $('#'+new_key).submit();
           
            /*
               form.attr('action',action);
               if(form.attr('action') != action){
                   form[0].setAttribute('action',action);
               }
               form.submit();               
           */
        }else{
            add_to_basket(form,'#parent_'+radio.attr('id'));
            //$('body,html').animate({scrollTop: 0}, 300);
            form.find('.add_to_cart,.camp_add_to_cart').find('a').text('Muuda ostukorvi');
            form.find('.add_to_cart,.camp_add_to_cart').find('i').text('Muuda ostukorvi');
        }
    }else{
        if(form.find('input[type="radio"]').parent('td.radio').length > 0){
            var red = form.find('input[type="radio"]').parent('td.radio');
            red.css('background-color','#ff2130');
            red.fadeOut(300,function(){
                $(this).css('background-color','#efefef');
                $(this).fadeIn(500);
            });
        }else{
            var active = form.find('input[type="radio"]').parents('td.radio');
            active.each(function(){
                if(!$(this).hasClass('active')){
                    $(this).addClass('active');
                    $(this).fadeOut(300,function(){
                        $(this).removeClass('active');
                        $(this).fadeIn(500);
                    });
                }
            });
        }
    }

    return false;
}

function reset_password_and_redirect(key,self){
    $.post(new String(window.location),{
        'action':'reset_password_by_key',
        'key':key
    },function(r){
        r = $.trim(r);
        if(r.length){
            $(self).replaceWith('<div style="display:block">'+r+'</div>');
        }else{
            $('#login_extra_param').submit();
        }
    });
    return false;
}


function debug(){
    var rr = new String(window.location);
    rr = rr.search("debug");
    if (rr != -1) {
       return true;
    }else{
        return false;
    }
}

function add_to_basket(form, id)
{
    var test = new Object;
    if($(form).hasClass('camp_order_table_form')){
        $(form).find('input').each(function(i){
            if($(this).attr('type').toLowerCase()=='radio'){
                 test[i] = new Array;
                 var in_value = $(this).attr('value').split('___');
                 var in_id = $(this).attr('id').split('__');

                 var is_checked = false;
                 if($('#'+$(this).attr('id')+':checked').length){
                     is_checked = true;
                 }
                 test[i] = new Array(in_value[0],in_value[1],in_value[2],in_id[2],is_checked);
            }else{
                test[$(this).attr('name')] = $(this).attr('value');
            }
        });
    }else{
        test = $(form).serialize();
    }
    var fhtml = $(id).parent().html();

    var a_pos = $(id).offset();
    var x_from = a_pos.left;
    var y_from = a_pos.top;
    var box_height = $(id).height();
    var box_width = $(id).width();

    if($(id).parent().attr('tagName').toLowerCase()=='tr'){
        box_height = $(id).parent().height();
        box_width = $(id).parent().width();
        fhtml = '<div class="magazine"><table class="order_table with_solid_borders"><tr>'+fhtml+'<tr/></table></div>';
    }
    
    $("#fly_container").append("<div id=\"flying_box\" style=\"position:absolute;display:none;overflow:hidden;z-index:100;\"><div style=\"width:"+box_width+"px;\">" + fhtml + "</div></div>");
    $("#flying_box").css("left",x_from);
    $("#flying_box").css("top",y_from);
    $("#flying_box").css("width",box_width);
    $("#flying_box").css("height",box_height);
    $("#flying_box").css("display","block");
    a_pos = $("#green_shopping_cart").offset();
    var x_to = a_pos.left-10;
    var y_to = a_pos.top-5;
    var f_height = parseInt(box_height/5);
    var f_width = parseInt(box_width/5);

    $("#flying_box").animate({
        "opacity": "0.05",
        "left": x_to,
        "top": y_to,
        "width": f_width,
        "height": f_height
      }, 500,function() {
        $.post("index.php",test,function(data){
            $("#green_shopping_cart").html(data.split('___')[0]);
            $('.product_form__'+$(form).find('input[name="product_id"]').val()).css('display',data.split('___')[1]);

            if($(form).hasClass('camp_order_table_form') && $(form).find('.camp_plus_one').length==1){
                var itm = $(form).find('.camp_plus_one');
                itm.removeClass('camp_plus_one');
                var itms = itm.attr('class');
                itm.addClass('camp_plus_one');
                $('.'+$.trim(itms)).each(function(){
                    $(this).val(parseInt($(this).val())+parseInt($(form).find('input[name="ammount_multiplier"]').val()));
                });
            }
        });
        $("#flying_box").css("display","none");
        $("#fly_container").html("");
        fhtml = "";
      });
      return false;
}

function toggle_list_thumbs(flip){
    $('.loading_box').height('auto');
    if(flip){
        $('.thumbs_row_div').slideDown(500);
        $('.list_row_div').slideUp(500);
        $('.toggle_sort_list_view').removeClass('active');
        $('.toggle_sort_thumb_view').addClass('active');
    }else{        
        $('.thumbs_row_div').slideUp(500);
        $('.list_row_div').slideDown(500);
        $('.toggle_sort_thumb_view').removeClass('active');
        $('.toggle_sort_list_view').addClass('active');
    }
    $.post("index.php",{
        'action':'toggle_store_product_view',
        'flip':flip,
        'store_id':$('.reload_shopping_list').find('input[name="store_id"]').val()
    });
    return false;
}

function cart_change_product_ammount(product_id,sign,limit,price,multiplier){
    var ammount = eval($('#this_row_ammount__'+product_id).text()+sign+multiplier);
    if(ammount > limit || ammount == 0){
        return false;
    }else{
        if(ammount==limit)                 $('#increase_button__'+product_id).addClass('transparent_30pc');
        if(ammount < limit)                $('#increase_button__'+product_id).removeClass('transparent_30pc');
        if(ammount==multiplier && limit > multiplier)        $('#decrease_button__'+product_id).addClass('transparent_30pc');
        if(ammount > multiplier && ammount < limit) $('#decrease_button__'+product_id).removeClass('transparent_30pc');

        $('#this_row_ammount__'+product_id).text(ammount);
        $('#row_total_full__'+product_id).text(str_replace(' ','',makeFormat(ammount*price).split('.')[0]));
        $('#row_total_part__'+product_id).text(makeFormat(ammount*price).split('.')[1].substr(0,2));

        $.post("index.php",{
            'action':'change_in_basket',
            'product_id':product_id,
            'ammount':ammount
        },function(data){
            $("#green_shopping_cart").html(data.split('___')[0]);
        });
        cart_change_total();
    }
    return false;
}

function returnInt(i){
    return i.replace(/[^0-9]/g,'');
}


/******************************* common ***************************************/


function disableEnterKey(e){
     var key;
     if(window.event) key = window.event.keyCode; //IE
     else             key = e.which; //firefox
     return (key != 13);
}

function redirect(url){
    setTimeout(function(){window.location = url;},0);
}

function getPageScroll() {
    var xScroll, yScroll;
    if (self.pageYOffset) {
      yScroll = self.pageYOffset;
      xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {
      yScroll = document.documentElement.scrollTop;
      xScroll = document.documentElement.scrollLeft;
    } else if (document.body) {// all other Explorers
      yScroll = document.body.scrollTop;
      xScroll = document.body.scrollLeft;
    }
    return new Array(xScroll,yScroll)
}

function getPageHeight() {
    var windowHeight
    if (self.innerHeight) { // all except Explorer
      windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
      windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
      windowHeight = document.body.clientHeight;
    }
    return windowHeight
}

function isArray(obj) {
    if(obj.constructor.toString().indexOf("Array") == -1)return false;
    else return true;
}

function str_replace(search, replace, subject){
    if(isArray(subject)){
        return subject[0].replace(new RegExp(search,"gi"), replace);
    }else{
        return subject.replace(new RegExp(search,"g"), replace);
    }
}

function count(search, subject) {
    var i = 0;
    var pos = subject.indexOf(search);
    var result = subject.substring(0);
    do {
        if (pos == -1) {
            return i;
        }
        result = result.substring(pos + search.length);
        pos = result.indexOf(search);
        i++;
    } while (i > 0);
    return false;
}

function randString() {
	var chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var string_length = 10;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}

function roundNumber(num, dec) {
	return Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
}

function makeFormat(num){
    num = new String(num);
    num = num.replace(',','.');
    num = reverse(num);

    if(num.indexOf('.')==1)        num = '0'+num;
    else if(num.indexOf('.')==-1)  num = '00.'+num;

    var dec = num.split('.')[0];
    var iPart = num.split('.')[1];

    if(iPart.length > 3){
        var arr = iPart.split("");
        num = '';
        $.each(arr,function(i,e){
            if(i%3==0) e = ' '+e;
            num = num + e;
        });
        num = dec+'.'+$.trim(num);
    }

    num = reverse(num);
    return num;
}

function reverse(str){
    return str.split("").reverse().join("");
}

function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
}


function trim(stringToTrim,trimWhat) {
    var patt=new RegExp("^"+trimWhat+"+|"+trimWhat+"+$","g");
    if(typeof trimWhat === 'undefined'){
        patt=new RegExp("^\s+|\s+$",'g');
    }
    return stringToTrim.replace(patt,"");
}

function ltrim(stringToTrim,trimWhat) {
    var patt=new RegExp("^"+trimWhat+"+");
    if(typeof trimWhat === 'undefined'){
        patt=new RegExp("^\s+");
    }
    return stringToTrim.replace(patt,"");
}

function rtrim(stringToTrim,trimWhat) {
    var patt=new RegExp(trimWhat+"+$");
    if(typeof trimWhat === 'undefined'){
        patt=new RegExp("\s+$");
    }
    return stringToTrim.replace(patt,"");
}

