
jQuery.fn.exists = function(){return jQuery(this).length>0;}
$().ready(function() {
    if ($('.slideshow').exists()) {
        $('.slideshow').cycle({
    		fx: 'fade', // choose your transition type, ex: fade, scrollUp, shuffle, etc...
    		random:  1
    	});
    }

    if ($('#searchbox').exists()) {

        $('#showtype,#showcat,#showcolor').mousemove(function() {
            var val = $(this).find('option:selected').attr('title');
            if ('' != val) {
                $('#show_selected').html('<img src="'+ val +'"/>');
                $('#show_selected').show();
            }
        });
        $('#showtype,#showcat,#searchbox').mouseout(function() {
            $('#show_selected').hide();
        });

        $('#showtype,#showcat,#showcolor,#showsize').change(function() {
            Main('search_product','searchproduct');
        });
    }

    if($('#tocart').exists()) {
        $('#tocart').click(function() {
            Main('tocart','shop-form');
            return false;
        });
    }
    if($('#toshop').exists()) {
        $('#toshop').click(function() {
            Main('switch_to_shop','shop-form');
            return false;
        });
    }
    if($('form.change_peaces').exists()) {
        $('form.change_peaces select').change(function() {
            var id = $(this).closest("form").attr("id");
            Main('change_product', id);
        });
        $('form.delete_order a').click(function() {
            var id = $(this).closest("form").attr("id");
            Main('delete_product', id);
            return false;
        });
    }
});

var Ajax_HandlerURL		= '/assets/';
var Ajax_Error          = 'Es ist ein Fehler aufgetreten';
var InitMod				= new Object();

function Main(Site, myForm) {
    var my_form = '';
    if ('' != myForm) {
        my_form = $('#'+myForm).serialize();
    }
    var my_args = '';
    if (Main.arguments.length > 2) {
        for (var args_count = 0; args_count < Main.arguments.length; args_count++) {
            if (args_count > 1) {
                my_args += '&Param'+(args_count-1)+'='+Main.arguments[args_count];
            }
        }
    }
	$.ajax({type: "POST", async: true, url: Ajax_HandlerURL, dataType: "json",
		data: '&Mod=' + Site +  '&' + my_form+my_args,
		beforeSend: function() {
		},
		success: function(Data) {
			for (Block in Data.Block) {
				//> Block template Parsen
				if ($("#"+Block)) {
    				if (Data.Block[Block].Data != undefined) {
            			$("#"+Block).html('');
                        HTMLBlock = Data.Block[Block].Template;
    	    			$("#"+Block).append(HTMLBlock);
    	    		}
    				if (Data.Block[Block].Append != undefined) {
                        HTMLBlock = Data.Block[Block].Template;
    	    			$("#"+Block).append(HTMLBlock);
    	    		}
    				if (Data.Block[Block].Css != undefined) {
    				    $("#"+Block).addClass(Data.Block[Block].Css);
    				}
    				if (Data.Block[Block].Cssre != undefined) {
    				    $("#"+Block).removeClass(Data.Block[Block].Cssre);
    				}
    				if (Data.Block[Block].Jqueryre != undefined) {
    				    $("#"+Block).unbind(Data.Block[Block].Jqueryre);
    				}
    				if (Data.Block[Block].Jquery != undefined) {
    				    $("#"+Block)[Data.Block[Block].Jquery]();
    				}
    				if (Data.Block[Block].Js != undefined) {
				        js_call(Data.Block[Block].Js, Block);
    				}
    				if (Data.Block[Block].Value != undefined) {
    				    $("#"+Block).val(Data.Block[Block].Value);
    				}
    				if (Data.Block[Block].Attr != undefined) {
    				    $("#"+Block).attr(Data.Block[Block].Attr, Data.Block[Block].Val);
    				}
    				if (Data.Block[Block].Href != undefined) {
    				    location.href = Data.Block[Block].Href;
    				}
    				if (Data.Block[Block].Reload != undefined) {
    				    location.reload();
    				}
    			}
			}
		}
	});
}

function js_call(p, arg) {
    var call = { Jcarousel_Reset:Jcarousel_Reset, Reset_Pager:Reset_Pager, save_cookie:save_cookie };
    if(typeof call[p] == 'function') call[p](arg);
}

function Jcarousel_Reset(Block) {
    if($('#'+Block).exists()) {
        jQuery('#'+Block).jcarousel( {start: 1});
    }
}

function Reset_Pager(Block) {
    $('.pager').parent('div').html('');
//    $('#'+Block).children('[class^=page]').each( function() {
//        var $this = $(this);
//        var newClass = $this.attr('class').replace(/page\d+/,'');
//        $this.attr('class',newClass);
//    });
    $('#'+Block).quickPager({
                pageSize: 16,
        		currentPage: 1,
        		pagerLocation: "both",
        		holder: ".pager",
                btnNext: ".jcarousel_next",
                btnPrev: ".jcarousel_prev"
               });
}
function Jcarousellite_Reset(Block) {
    if($('#'+Block).exists()) {
        jQuery('#'+Block).jCarouselLite(
                {start:0,
                 vertical: false,
                 scroll: 1,
                 visible: 4,
                 rows: 4,
                 btnNext: ".jcarousel_next",
                 btnPrev: ".jcarousel_prev",
                 speed: 700
                });
    }
}

function save_cookie(form_id, typeID) {
    var tag_elements = document.getElementsByTagName('form');
    for (var i = 0; i < tag_elements.length; i++) {
        var tag_element = tag_elements[i];
        if (form_id == tag_element.id) {
            if (undefined == typeID) {
                typeID = undefined;
                if($('#'+form_id+'>mcat')) {
                    typeID = 'mcat';
                }
            }
            var form_action = tag_element.action;
            if (form_action.search(mydomain)==-1) {
                if (form_action.substring(0,1)!='/') {
                    form_action = '/'+form_action;
                }
            } else {
                form_action = form_action.substring(mydomain.length-1, 9999);
            }
            var elem;
            for (var j = 0; j < tag_element.elements.length; j++) {
                elem = tag_element.elements[j];
                if ('show' == elem.id.substring(0, 4)) {
                    set_cookie(elem.id, undefined, typeID, form_action);
                }
            }
        }
    }
}

function set_cookie(Block, myval, typeID, mypath) {
    var c_var = Block;
    if (typeof typeID != 'undefined') {
        if ($('#'+typeID).val()) {
            c_var += '_'+$('#'+typeID).val();
        }
    }
    $.cookie(c_var, null);
    if ('undefined' != typeof myval) {
    } else {
        myval = null;
        if ($('#'+Block).val()) {
            myval = $('#'+Block).val();
        }
    }
    $.cookie(c_var, myval, {path: mypath});
}

function set_dialogs() {
	$(function() {
		// run the currently selected effect
		function runEffect() {
			// get effect type from 
			var selectedEffect = "blind";
	
			// most effect types need no options passed by default
			var options = {};
			// some effects have required parameters
			if ( selectedEffect === "scale" ) {
				options = { percent: 100 };
			} else if ( selectedEffect === "size" ) {
				options = { to: { width: 280, height: 185 } };
			}
	
			// run the effect
			$( "#effect" ).show( selectedEffect, options, 500, callback );
		};
	
		//callback function to bring a hidden box back
		function callback() {
			setTimeout(function() {
				$( "#effect:visible" ).removeAttr( "style" ).fadeOut();
			}, 20000 );
		};
	
		// set effect from select menu value
		$( "#tocart" ).click(function() {
			runEffect();
			return false;
		});
	
		$( "#effect" ).hide();
	});
}

function linkopener() {
	set_dialogs();
}

window.onload = linkopener;

