try { // fix IE background flicker
  document.execCommand("BackgroundImageCache", false, true);
} catch(e) {}

// Image preloader
(function($){
    $.fn.preloadImages = function(){
        return this.each(function(){
            var src = $(this).attr("src");
            var outsrc = src;
            parts = src.split(".");
            src = parts[0] + "_over." + parts[1];
            var oversrc = src;
            jQuery("<img>").attr({src: src});
        });
    }
})(jQuery);

$.fn.hoverImages = function(options){

    var defaults = {
        pngfix: false
    }
    
    var options = $.extend(defaults, options);
    
    return this.each(function(opt){
    
        var $$ = $(this);
        
        var src = $$.attr("src");
        var outsrc = src;
        parts = src.split(".");
        src = parts[0] + "_over." + parts[1];
        var oversrc = src;
        
        $$.hover(function(){
            $$.attr({src: oversrc});
            
            if(options.pngfix) $$.ifixpng(); // fix IE
            
        }, function(){
        
            $$.attr({src: outsrc});
            
            if(options.pngfix) $$.ifixpng(); // fix IE
            
        });
    });
}

$.fn.clearForm = function() {
    return this.each(function() {
        var type = this.type, tag = this.tagName.toLowerCase();
        if(tag == 'form')
            return $(':input', this).clearForm();
        if(type == 'text' || type == 'password' || tag == 'textarea')
            this.value = '';
        else if(type == 'checkbox' || type == 'radio')
            this.checked = false;
        else if(tag == 'select')
            this.selectedIndex = -1;
    });
};

function checkEmail(emailstr) {
    //Check valid email
    var emailFilter=/[\w\-]+\@[\w\-]+\.\w{2,4}/;
    if(!(emailFilter.test(emailstr))) {
        return false;
    } else {
        return true;
    }
}

function pollResult(poll_id) {

   pollbox = $("div[pollid="+poll_id+"]");
   
   if(pollbox.size()) {
   
       $.getJSON("/scripts/poll.json.php", {action: "data", poll_id: poll_id}, function(data){
       
           pollbox.html("");
           
           $("<div>").addClass("title").html(data.poll.text).appendTo(pollbox);
           
           votedata = $("<div>").addClass("votedata");
           
           $.each(data.poll.options, function(i, option){
               
               optiontext = option.text;
               if(option.percentage > 0) optiontext = optiontext + ' (' + option.percentage+'%)';
               
               $("<div>").addClass("text").html(optiontext).appendTo(votedata);
               $("<div>").attr({optionid: option.id, percentage: option.percentage}).addClass("bar").html('').appendTo(votedata);
           });
           
           votedata.appendTo(pollbox);
           
           $("div.bar", pollbox).each(function(i, obj){
               
               
               widthval = $(obj).attr("percentage") + "%";
               
               // animate bar width
               $(obj).animate({width: widthval}, 2000);
               
           });
           
       });
       
   }
   
}

function pollVote(poll_id) {

    form = $("form[pollid="+poll_id+"]");
    
    if(form.size()) {
        
        option_id = $(":checked", form).val();
        
        if(option_id != undefined) {
        
            $.post("/scripts/poll.json.php", {action: "vote", poll_id: poll_id, option_id: option_id}, function(data){
            
                if(data.result == 'ok') {
                
                    pollResult(poll_id);
                    
                }
                
            }, "json");
            
        }
        
    }
    
    return false;
    
}