/*
 * odoFrontSlide - jQuery Plugin
 * A slideshow designet for the frontside of my protfolio
 *
 * Copyright (c) 2010 Andrés Bott
 * Examples and documentation at: http://andresbott.com or http://ofs.andresbott.com
 * 
 * Version: 0.4(04/Mar/2010)
 * Developed with: jQuery v1.4
 * 
 * licensed under the LGPL license:
 *   http://www.gnu.org/licenses/lgpl.html
 *   
 *   Deppends on jquery.idle (shipped with)
 *   
 */
(function($){$.fn.idle=function(time){var o=$(this);o.queue(function(){setTimeout(function(){o.dequeue();},time);});return this;};})(jQuery);(function($){$.fn.odofrontslide=function(options){var defaults={images:false,no_js_img:false,selector:false,selector_width:1,selector_height:50,selector_min_width:false,selector_max_width:false,border_selector:false,border_fadein:true,useAltAsLink:false,sleep:5000,fade_time:500,comment_fade:300,comment_show:4000};var options=$.extend(defaults,options);var slideshowsLenght=$(this).length;$(this).each(function(i){if(options.images==false){var imagenes=new Array();image_list=$(this).find("#oFS_image_list img").each(function(j){imagenes[j]=new Array();imagenes[j]["url"]=$(this).attr("src");imagenes[j]["desc"]=$(this).attr("title");if(options.useAltAsLink==true){imagenes[j]["link"]=$(this).attr("alt");}else{imagenes[j]["link"]=$(this).attr("link");}});}else{var imagenes=options.images;}
var parameters={imag:imagenes,actual_i:i,img_to_load:0,prew_img:"false",init:true,}
var parameters=$.extend(parameters,options);parameters.selector=$(this);$(this).addClass("oFS_loading");if(parameters.imag!=false){$(this).find(parameters.no_js_img).hide();if(parameters.border_selector!=false){$(this).find(parameters.border_selector).css('position',"absolute");$(this).find(parameters.border_selector).css('zIndex',"4005");if(parameters.border_fadein==true){if($(this).find(parameters.border_selector).css('display')!='none'){$(this).find(parameters.border_selector).hide();}
if(parameters.border_fadein==true){$(this).find(parameters.border_selector).idle(500).fadeIn(parameters.fade_time);}else{$(this).find(parameters.border_selector).show()}}}
oFS_resize(parameters);if(typeof parameters["selector_width"]=="number"){$(window).resize(function(){oFS_resize(parameters)});}
oFS_preload_images(parameters)
var mask_id="oFS_img_mask_"+parameters.actual_i;parameters.mask_id=mask_id;$(parameters.selector).append("<div id="+mask_id+"></div>");$(parameters.selector).find("#"+mask_id).addClass("oFS_mask");setTimeout(function(){show_images(parameters);},parameters.fade_time+parameters.fade_time);setInterval(function(){show_images(parameters);},parameters.sleep+parameters.fade_time+parameters.fade_time);}})
function oFS_preload_images(parameters){var img_length=parameters.imag.length;for(i=0;i<img_length;i=i+1){oFS_load_single(i,parameters)}}
function oFS_load_single(i,parameters){var actual=parameters.actual_i;parameters.imag[i]["img"]=new Image();$(parameters.imag[i]["img"]).load(function(){parameters.imag[i]["loaded"]=true;}).attr('src',parameters.imag[i]["url"]);}
function show_images(parameters){var actual=parameters.actual_i;if(parameters.imag[parameters.img_to_load]["loaded"]==true){print_image(parameters.prew_img,parameters.img_to_load,parameters);if(parameters.init==true){$(parameters.selector).removeClass("oFS_loading");}
parameters.prew_img=parameters.img_to_load;var img_length=parameters.imag.length;if(parameters.img_to_load==img_length-1){parameters.img_to_load=0;}else{parameters.img_to_load=parameters.img_to_load+1;}
parameters.init=false;}else{if(parameters.init==true){setTimeout(function(){show_images(parameters);},100);}else{setTimeout(function(){show_images(parameters);},1500);}}}
function print_image(prew_img,img_to_load,parameters){var actual=parameters.actual_i;var img=parameters.imag[img_to_load]["img"]
$(img).hide();$(parameters.selector).find("#"+parameters.mask_id).append("<div id=img_div_"+actual+"_"+img_to_load+"></div>");var img_div=$(parameters.selector).find("#img_div_"+actual+"_"+img_to_load);if(parameters.imag[img_to_load]["link"]!=""){$(parameters.selector).prepend("<a id=img_link_"+actual+"_"+img_to_load+"></a>");$(parameters.selector).find("#img_link_"+actual+"_"+img_to_load).append("<div id=img_hidden_"+actual+"_"+img_to_load+"></div>");var hidden_img=$(parameters.selector).find("#img_hidden_"+actual+"_"+img_to_load);var prew_z_index=$(parameters.selector).find(parameters.border_selector).css("z-index")
$(hidden_img).css("position","absolute")
$(hidden_img).css("z-index",prew_z_index+100)
$(hidden_img).addClass("oFS_external_url")
$(parameters.selector).find("#img_link_"+actual+"_"+img_to_load).attr("href",parameters.imag[img_to_load]["link"]);var hidden_img_w=$(parameters.selector).width();var hidden_img_h=$(parameters.selector).height();set_size(hidden_img,hidden_img_w,hidden_img_h);if(typeof parameters["selector_width"]=="number"){$(window).resize(function(){set_size(hidden_img,1,1)
hidden_img_w=$(parameters.selector).width();hidden_img_h=$(parameters.selector).height();set_size(hidden_img,hidden_img_w,hidden_img_h)});}}
if(prew_img!="false"){if(parameters.imag[prew_img]["link"]!=""){$(parameters.selector).find("#img_link_"+actual+"_"+prew_img).remove()}}
$(img_div).append(img);$(img_div).css("position","relative");if(prew_img!="false"){var alt=$(parameters.selector).find("#img_div_"+actual+"_"+prew_img).height();$(img_div).css("top","-"+alt+"px")}
if(typeof parameters.imag[img_to_load]["img_w"]=="undefined"){parameters.imag[img_to_load]["img_w"]=$(img).width();parameters.imag[img_to_load]["img_h"]=$(img).height();parameters.imag[img_to_load]["img_prop"]=parameters.imag[img_to_load]["img_h"]/parameters.imag[img_to_load]["img_w"];}
image_resize(img_to_load,parameters);$(window).resize(function(){image_resize(img_to_load,parameters);});$(img).fadeIn(parameters.fade_time,function(){if(prew_img!="false"){$(parameters.selector).find("#img_div_"+actual+"_"+prew_img).remove();}
$(img_div).css("top","0px");});if(parameters.imag[img_to_load]["desc"]!=""){if(parameters.imag[img_to_load]["desc"]!=" "){$(img_div).append("<div id=comment_div_"+actual+"_"+img_to_load+"></div>");comment_div=$(parameters.selector).find("#comment_div_"+actual+"_"+img_to_load)
$(comment_div).addClass("oFS_comments_div")
$(comment_div).append("<p>"+parameters.imag[img_to_load]["desc"]+"</p>").hide().fadeIn(parameters.comment_fade,function(){$(this).animate({opacity:'0.6',backgroundColor:"#000000"},parameters.comment_fade,"linear",function(){setTimeout(function(){$(comment_div).fadeOut(parameters.comment_fade)},parameters.comment_show);});})
altb=$(parameters.selector).height();alta=$(img_div).height();alt2=alta-altb;$(comment_div).css("top","-"+alt2+"px")
$(window).resize(function(){altb=$(parameters["selector"]).height();alta=$(img_div).height();alt2=alta-altb;$(comment_div).css("top","-"+alt2+"px")});}}}
function oFS_resize(config){var selector=config.selector;var parent_selector=$(selector).parent();$(parent_selector).find("*").each(function(){if($(this).css("display")!="none"){$(this).addClass("oFS_tmp");$(this).hide()}})
$(parent_selector).append('<div class="oFS_to_remove" style="width:2px;height:10000px;"></div>')
var parent_width=$(parent_selector).width();$(parent_selector).find(".oFS_to_remove").each(function(){$(this).remove();});$(parent_selector).find(".oFS_tmp").each(function(){$(this).removeClass("oFS_tmp")
$(this).show();})
var border_selector=config.border_selector;if(typeof config.selector_width=="number"){if(config.selector_width>=1){child_width=(config.selector_width*parent_width)/100;$(selector).css("width",child_width+"px");}}else if(typeof config.selector_width=="string"){var child_width=config.selector_width;child_width=Math.round(child_width)-1;}
$(selector).css("width",child_width+"px");child_width=$(selector).width();if(config.selector_min_width!=false){if(config.selector_min_width>=child_width){child_width=config.selector_min_width;}}
if(config.selector_max_width!=false){if(config.selector_max_width<=child_width){child_width=config.selector_max_width;}}
$(selector).find(border_selector).css("width",child_width);config.selector_W=child_width;if(typeof config.selector_height=="number"){if(config.selector_height>=1){child_height=(config.selector_height*child_width)/100;$(selector).css("height",child_height+"px");}}else if(typeof config.selector_height=="string"){var child_height=config.selector_height;}
child_height=Math.round(child_height);$(selector).css("height",child_height+"px");$(selector).find(border_selector).css("height",child_height+"px");config.selector_H=child_height;}
function image_resize(img_to_load,parameters){var imgW=parameters.imag[img_to_load]["img_w"]
var imgH=parameters.imag[img_to_load]["img_h"]
var H=$(parameters.selector).height();var W=$(parameters.selector).width();var container_prop=H/W;var img_prop=parameters.imag[img_to_load]["img_prop"];if(imgW==imgH){w2=Math.round(W);h2=Math.round(img_prop*w2);}else if(imgW>imgH){if(container_prop>img_prop){h2=Math.round(H);w2=Math.round((imgW/imgH)*h2);}else{w2=Math.round(W);h2=Math.round(img_prop*w2);}}else{if(container_prop>img_prop){h2=Math.round(H);w2=Math.round(img_prop*h2);}else{w2=Math.round(W);h2=Math.round(img_prop*w2);}}
set_size($(parameters.imag[img_to_load]["img"]),w2,h2)}
function set_size(obj,w,h){$(obj).css("width",w+"px");$(obj).css("height",h+"px");}};})(jQuery);

