/* # Various page JS functions # ------------------------------ # @file page.js # @version 1.0.0b # @date 2009-07-31 23:37:21 +0200 (Fri, 31 Jul 2009) # @author Aleksandar Markovic # Copyright (c) 2010 Netsector */ $(document).ready(function(){ /* global vars */ var basket_changed = false; /* Clear search field on focus */ var txt_cleared = false; function clear_text() { if (txt_cleared == false) { document.getElementById("search").value = ""; txt_cleared = true; } } //============ scrollable =========== // initialize scrollable 1 (large - pictures) $("#scrollable1").scrollable({ size: 1, loop: 0, speed: 400, clickable: false // use mousewheel plugin }).navigator(".navi"); if ($("#scrollable1").length > 0) { var myapi = $("#scrollable1").scrollable(); myapi.onSeek(function() { // inside callbacks the "this" variable is a reference to the API //console.info("current position is: " + this.getIndex()) //alert("current position is: " + this.getIndex()); enable_pics_in_page (this.getIndex()); }); } function enable_pics_in_page (pageno) { $("#ip_"+pageno).find(".ovl").each(function(){ //pretvori xsrc u src var xsrc = $(this).attr("xsrc"); $(this).attr("src", xsrc); }); } // initialize scrollable 2 (small - gals) $("#scrollable2").scrollable({ size: 1, loop: 0, speed: 200, loop: false, clickable: false, nextPage: ".nextPage2", prevPage: ".prevPage2", disabledClass: "disabled2" // use mousewheel plugin }).mousewheel(); // ============= tooltip ============= $("#scrollable2 img[title]").tooltip({ tip: '#galtip', predelay: 300, onBeforeShow: function(){ var tipobj = this.getTip(); var tiphtml = tipobj.html(); var tip_tmp = tiphtml.split("|"); var tip_date = '
'+tip_tmp[0]+'
'; var tip_text = '
'+tip_tmp[1]+'
'; tipobj.html(tip_date + tip_text); } }); /* $(".ovl_is_in_basket img[title]").tooltip({ tip: '#galtip', predelay: 500 }); */ if ($("#photo_zoom").length > 0) { $(".ovlzoom").overlay({ target: "#photo_zoom", fadeInSpeed: "100", expose: "#f1f1f1" }); } // ============ gal overlay ============= $(".ovl").overlay({ top: 130, absolute: true, effect: 'apple', target: '#overlay_div', onBeforeLoad: function(event) { //determinate triger id gal_ovl_triger(this); } }); /* gal triger + focus */ function gal_ovl_triger(mythis) { var focus_pid = $("#focus_image_id").attr("value"); if (focus_pid > 0) { var p_id = 'pid'+focus_pid; //reset focus $("#focus_image_id").attr("value","0"); focus_pid = 0; } else { //get current pid var p_id = mythis.getTrigger().attr('id'); } //clear error text $(".ovl_basket_action_status").html(""); //call ajax (onSuccess will set picture and prev/nex link) getMyXMLGal("ajax/ajax_gal.php?pid="+ p_id.substr(3)); } // ============ prev/next gal overlay click ============= function getMyXMLGal( url ){ $.ajax({ url: url, dataType: "xml", encoding:"UTF-8", success: xmlSuccessGal, error: xmlErrorGal }); } function xmlErrorGal (xhrInstance, message, optional){ alert("AJAX: There was an error loading the document."); } function xmlSuccessGal(data, status){ //parse xml var pic_src = $(data).find("src").text(); var pic_pid = $(data).find("pid").text(); var pic_tit = $(data).find("fn").text(); var prev_pid = $(data).find("prev_pid").text(); var next_pid = $(data).find("next_pid").text(); var zoom_img = $(data).find("zoom").text(); //zoom logic if (zoom_img){ $(".ovl_zoom_me").css("display","block"); $("#photo_zoom_src").attr("src", zoom_img); } else { $(".ovl_zoom_me").css("display","none"); } //set img/src in overlay $("#overlay_pic").attr("src",pic_src); $("#overlay_pic").attr("title",pic_tit); $("#overlay_pic").attr("alt", pic_pid); $("#span_pic_pn").html(pic_pid); $("#span_pic_name").html(pic_tit); //attach PREV click function $('#overlay_prev_pic').unbind(); if (prev_pid != 0) { $('#overlay_prev_pic').removeClass('overlay_prev_pic_disabled'); $('#overlay_prev_pic').click(function() { getMyXMLGal("ajax/ajax_gal.php?&pid="+prev_pid); }); } else { $('#overlay_prev_pic').addClass('overlay_prev_pic_disabled'); } //attach NEXT click function $('#overlay_next_pic').unbind(); if (next_pid != 0) { $('#overlay_next_pic').removeClass('overlay_next_pic_disabled'); $('#overlay_next_pic').click(function() { getMyXMLGal("ajax/ajax_gal.php?pid="+next_pid); }); } else { $('#overlay_next_pic').addClass('overlay_next_pic_disabled'); } } // ============ add to basket ============= function getMyXMLAddBasket( url ){ $.ajax({ url: url, dataType: "xml", encoding:"UTF-8", success: xmlSuccessAddBasket, error: xmlErrorAddBasket }); } function xmlErrorAddBasket( xhrInstance, message, optional ){ alert("AJAX: There was an error loading the document."); } function xmlSuccessAddBasket( data, status ){ //parse xml var err_flag = $(data).find("err_flag").text(); var err_txt = $(data).find("err_txt").text(); var bcnt = $(data).find("bcnt").text(); var a_div = $(".ovl_basket_action_status"); if (err_flag == 0) { //ok $("#backet_count").html(bcnt); a_div.html(err_txt); a_div.hide().fadeIn("slow").fadeOut("slow"); } else { //err a_div.html(err_txt); a_div.css('display', 'block'); } } //attach add_to_basket function $('#but_add_to_basket').click(function() { var a_div = $(".ovl_basket_action_status"); a_div.html(''); a_div.fadeIn(); add_to_basket(); }); function add_to_basket() { var pid = $("#overlay_pic").attr("alt"); var pfm = $("#pformat").val(); var qua = parseInt($("#pquantity").val() * 1); if (qua <= 0 || isNaN(qua)) { $("#pquantity").focus(); } else { getMyXMLAddBasket("ajax/ajax_basket_add.php?a=add&pid="+pid+"&pfm="+pfm+"&qua="+qua); } } // ============ update basket ============= function getMyXMLUpdateBasket( url ){ $.ajax({ url: url, dataType: "xml", encoding:"UTF-8", success: xmlSuccessUpdateBasket, error: xmlErrorUpdateBasket }); } function xmlErrorUpdateBasket( xhrInstance, message, optional ){ alert("AJAX: There was an error loading the document."); } function xmlSuccessUpdateBasket( data, status ){ //parse xml var err_flag = $(data).find("err_flag").text(); var err_txt = $(data).find("err_txt").text(); var bcnt = $(data).find("bcnt").text(); var a_div = $(".ovl_basket_action_status"); if (err_flag == 0) { //ok $("#backet_count").html(bcnt); a_div.html(err_txt); a_div.hide().fadeIn("slow").fadeOut("slow"); } else { //err a_div.html(err_txt); a_div.css('display', 'block'); } basket_changed = true; } //attach update_basket function $('#but_update_basket').click(function() { var a_div = $(".ovl_basket_action_status"); a_div.html(''); a_div.fadeIn(); update_basket(); }); function update_basket() { var pid = $("#overlay_pic").attr("alt"); var pfm = $("#pformat").val(); var qua = parseInt($("#pquantity").val() * 1); if (qua <= 0 || isNaN(qua)) { $("#pquantity").focus(); } else { getMyXMLUpdateBasket("ajax/ajax_basket_update.php?a=update&phpid="+pid+"&pfm="+pfm+"&qua="+qua); } } // ============ get basket ============= function getMyXMLGetBasket( url ){ $.ajax({ url: url, dataType: "xml", encoding:"UTF-8", success: xmlSuccessGetBasket, error: xmlErrorGetBasket }); } function xmlErrorGetBasket( xhrInstance, message, optional ){ alert("AJAX: There was an error loading the document."); } function xmlSuccessGetBasket( data, status ){ //parse xml var pic_src = $(data).find("src").text(); var pic_pid = $(data).find("pid").text(); var pic_phpid = $(data).find("phpid").text(); var pic_tit = $(data).find("fn").text(); var err_flag = $(data).find("err_flag").text(); var err_txt = $(data).find("err_txt").text(); var bcnt = $(data).find("bcnt").text(); var qua = $(data).find("qua").text(); var fmt = $(data).find("fmt").text(); var gid = $(data).find("gid").text(); var cid = $(data).find("cid").text(); var eid = $(data).find("eid").text(); var ename = $(data).find("ename").text(); var gname = $(data).find("gname").text(); var cname = $(data).find("cname").text(); var prev_phpid = $(data).find("prev_phpid").text(); var next_phpid = $(data).find("next_phpid").text(); //each format option (from xml) var fmtopt_html = ""; $(data).find("fmto").each(function(i){ var fmtoid = $(this).attr("id"); var fmtoprice = $(this).attr("price"); var fmtoname = $(this).attr("name"); if (fmt == fmtoid) { fmtopt_html += ''+"\n"; } else { fmtopt_html += ''+"\n"; } }); //set format options html $("#pformat").html(fmtopt_html); //set quantity $("#pquantity").val(qua); //get selected format price var ftm_sel_tmp = $("#pformat :selected").attr("id"); var ftm_sel_price = ftm_sel_tmp.substr(8); //update price (qua * fmt) $("#span_pic_price").html("€ " + (ftm_sel_price * qua)+".00"); //set img/src in overlay $("#overlay_pic").attr("src",pic_src); $("#overlay_pic").attr("title",pic_tit); $("#overlay_pic").attr("alt", pic_phpid); $("#span_pic_pn").html(pic_pid); //$("#span_pic_name").html(pic_tit); $("#link_event_name").html(ename).attr('href','index-id3-cid'+cid+'-eid'+eid+'-gid'+gid+'.xhtml'); $("#link_gal_name").html(gname).attr('href','index-id3-cid'+cid+'-eid'+eid+'-gid'+gid+'.xhtml'); $("#link_pic_name").html(pic_tit).attr('href','index-id3-cid'+cid+'-eid'+eid+'-gid'+gid+'-fc'+pic_pid+'.xhtml'); $("#link_cat_name").html(cname).attr('href','index-id3-cid'+cid+'.xhtml'); //attach PREV click function $('#overlay_prev_pic').unbind(); if (prev_phpid != 0) { $('#overlay_prev_pic').removeClass('overlay_prev_pic_disabled'); $('#overlay_prev_pic').click(function() { getMyXMLGetBasket("ajax/ajax_basket_get.php?&phpid="+prev_phpid); }); } else { $('#overlay_prev_pic').addClass('overlay_prev_pic_disabled'); } //attach NEXT click function $('#overlay_next_pic').unbind(); if (next_phpid != 0) { $('#overlay_next_pic').removeClass('overlay_next_pic_disabled'); $('#overlay_next_pic').click(function() { getMyXMLGetBasket("ajax/ajax_basket_get.php?phpid="+next_phpid); }); } else { $('#overlay_next_pic').addClass('overlay_next_pic_disabled'); } //attach price update function on format and quantity change $('#pquantity').unbind(); $('#pquantity').keyup(function() {calc_pice_price();}); $('#pformat').unbind(); $('#pformat').keyup(function() {calc_pice_price();}); $('#pformat').change(function() {calc_pice_price();}); } //function to update pic price function calc_pice_price() { //get selected format price var ftm_sel_tmp = $("#pformat :selected").attr("id"); var ftm_sel_price = ftm_sel_tmp.substr(8); //get quiantity var qua = $("#pquantity").val(); //update text $("#span_pic_price").html("€ " + (ftm_sel_price * qua)+".00"); } // ============ basket overlay ============= $(".ovlbasket").overlay({ top: 130, /*absolute: true,*/ effect: 'apple', target: '#overlay_basket_div', onBeforeLoad: function(event) { //get current pid var p_id = this.getTrigger().attr('id'); //clear error text $(".ovl_basket_action_status").html(""); //call ajax (onSuccess will set picture and prev/nex link) getMyXMLGetBasket("ajax/ajax_basket_get.php?phpid="+ p_id.substr(5)); }, //refresh page if basked changed onClose: function(event) { if (basket_changed) { window.location = 'index-id7.xhtml'; } } }); // ============ contact form ============= if ($("#cont_button1").length > 0) { $("#cont_button1").click(function() { window.location='index-id6.xhtml'; }); } if ($("#cont_button2").length > 0) { $("#cont_button2").click(function() { var frm = $('#xcontform'); frm.attr('action', 'index-id6.xhtml'); frm.submit(); }); } if ($("#xcontform").length > 0) { var validator = $('#xcontform').validate({ rules: { fld_b1: {minlength: 3, maxlength: 100}, //fld_b2: {minlength: 3, maxlength: 100}, //fld_b3: {minlength: 3, maxlength: 10}, //fld_b4: {minlength: 3, maxlength: 100}, //fld_b5: {minlength: 3, maxlength: 100}, //fld_b6: {minlength: 6, maxlength: 20}, fld_b7: {email: true}, fld_b8: {minlength: 6} }, messages: { fld_b1: "Dit veld is verplicht.", fld_b7: "Dit veld is verplicht.", fld_b8: "Dit veld is verplicht." //fld_b1: "Please specify your name" //fld_b7: {required: "We need your email address to contact you", email: "Your email address must be in the format of name@domain.com"} }, submitHandler: function(form) { form.submit(); } }); } // ============ tell a friend ============= function tellFriendSend(fromBasket){ var el_tell_friend_email = $('#tell_friend_email'); var el_tell_friend_text = $('#tell_friend_text'); var el_span_pic_pn = $('#span_pic_pn'); if (fromBasket) { var phpid = $("#overlay_pic").attr("alt"); } else { var phpid = $('#span_pic_pn').html(); } //filed check if (el_tell_friend_email.attr('value') == "") { el_tell_friend_email.focus(); return; } if (el_tell_friend_text.attr('value') == "") { el_tell_friend_text.focus(); return; } if (el_span_pic_pn.html() == "") { return; } var a_div = $(".ovl_basket_tell_friend_status"); a_div.html(''); a_div.fadeIn(); $.ajax({ type: "POST", url: 'ajax/ajax_tell_friend.php', data: ({ email_recipient : el_tell_friend_email.attr('value'), email_text : el_tell_friend_text.attr('value'), pid : phpid, bas: fromBasket }), dataType: "html", encoding:"UTF-8", success: tellFriendSendSuccess, error: tellFriendSendError }); } function tellFriendSendError( xhrInstance, message, optional ){ alert("AJAX: There was an error loading the document."); } function tellFriendSendSuccess( data, status ){ var a_div = $(".ovl_basket_tell_friend_status"); a_div.fadeOut(); //a_div.html(data); //a_div.fadeIn("slow").fadeOut("slow"); alert(data); } /* gal tell friend */ if ($("#tell_friend_link").length > 0) { $('#tell_friend_link').click(function() { tellFriendSend(0); }); } /* basket tell friend */ if ($("#basket_tell_friend_link").length > 0) { $('#basket_tell_friend_link').click(function() { tellFriendSend(1); }); } /* tree nav overlay */ if ($("#navtree").length > 0) { $("#navtree").overlay({ oneInstance: false, closeOnClick: true, // use apple effect effect: 'default', speed: 'fast' }); $('.seo_h3_gal_title').click(function() { $("#navtree").overlay().load(); }); } }); // ========== remove from basket func (simple call) ========== function brem(phpid) { window.location = "ajax/basket_remove.php?a=del&phpid="+(phpid); }