        var imgArr = [];
        $(document).ready(function(){
            //fetchAndHideImages();
            //makeVisible();
            starRating.create('.stars');
            $('#id_feedback_form').live('submit', function(){
                var data = {};
                var feedback_url = $(this).attr('action');
                $(this).find(':input').each(function(){
                    var key = $(this).attr('name');
                    var value = $(this).val();
                    data[key] = value;
                });
                $(this).find('select').each(function(){
                    var key = $(this).attr('name');
                    var value = $(this).val();
                    data[key] = value;
                });
                $(this).find('textarea').each(function(){
                    var key = $(this).attr('name');
                    var value = $(this).val();
                    data[key] = value;
                });
                $.post(feedback_url, data, load_feedback);
                return false;
            });
            
            var emailHost = "free-flash-template.com";
            var var1 = "business";
            $('span.contact').html(" | <a href=" + "mail" + "to:" + var1 + "@" + emailHost+ ">Contact us</" + "a>");

        });
        $(window).load(function () {
            //starRating.create('.stars');
        });
        function fetchAndHideImages(){
            $('#templates ol li a').each(function(index){ 
                imgArr[index] = $(this).html();
                var w = $(this).children('img').attr('width');
                var h = $(this).children('img').attr('height');
                $(this).children('img').removeAttr("src").hide();
                $(this).html('<span class="placeholder" style="display:block;width:'+w+'px;height:'+h+'px;"></div>');
            });
        }
        function makeVisible(){
            if($(".placeholder").length != 0){
                $('#templates ol li a').each(function(index){ 
                    var offset = $(this).offset();
                    if(offset.top < $(window).height()+$(document).scrollTop()){
                        if(imgArr[index]){
                            $(this).html(imgArr[index]);
                            imgArr[index] = false;
                        }
                    }
                });
            }
        }
        $(window).scroll(function(){
            makeVisible();
        });
        // *******************************************************************************************/
        // STAR RATING SYSTEM */
        // *******************************************************************************************/
        var starRating = {
          create: function(selector) {
            /* loop over every element matching the selector */
            $(selector).each(function() {
              
              var $list = $('<div></div>')
              $(this).css('visibility', 'visible');
              var elem_id = $(this).find('form input:hidden[name=img_id]').val();
              var elem_rating = $(this).find('form input:hidden[name=img_rating]').val();
              for(var k=1;k<=10;k++){
                  rate = 0.5*k;
                  // alert(parseFloat(elem_rating)+' VS '+k);
                  if(parseFloat(elem_rating) == k){
                      checked = 'checked="checked"';
                  }else{
                      checked = '';
                  }
                  $(this).children('form').append('<label><input name="rating" type="radio" value="'+k+'" '+checked+' />'+rate+'</label>')

              }
              /* loop over every radio button in each container */
              $(this)
                .find('input:radio')
                .each(function(i) {
                  var rating = $(this).parent().text();
                  var $item = $('<span></span>')
                    .attr('title', rating)
                    .addClass(i % 2 == 1 ? 'rating-right' : '')
                    .text(rating);
                  
                  starRating.addHandlers($item);
                  $list.append($item);
                  if($(this).attr('checked')) {
                    $item.prevAll().andSelf().addClass('rating');
                    $list.attr('defaultRating', $item.text());
                  }
                });
                /* Hide the original radio buttons */
                $(this).append($list).find('label').hide();

            });
          },
          addHandlers: function(item) {
            $(item).click(function(e) {
              /* Handle Star click */
              var $star = $(this);
              var $allLinks = $(this).parent();
              $allLinks.parent().css({opacity:0.5});

              /* Set the radio button value */
              var $inputElem = $allLinks.parent().find('input:hidden[name=img_id]'); 
              var img_id = $inputElem.attr('value');
              var rated = 2*parseFloat($star.text());

              /* Register vote */
              $.get('/ajax/template/'+img_id+'/rate/'+rated+'/', function(data) {
                  /*$('.result').html(data);*/
                  /*alert('Load was performed:'+data);*/
              });

              
              /* $star.text() */
              /* Set the ratings */
              $allLinks.children().removeClass('rating');
              $star.prevAll().andSelf().addClass('rating');
              $allLinks.attr('defaultRating', $star.text())
              /* prevent default link click */
              e.preventDefault();
                  
            }).hover(function() {
              /* Handle star mouse over */
              $(this).siblings().andSelf().removeClass('rating');
              $(this).prevAll().andSelf().addClass('rating-over');
            }, function() {
              /* Handle star mouse out */
              $(this).siblings().andSelf().removeClass('rating-over');
              $(this).siblings().andSelf().removeClass('rating');
              var $allLinks = $(this).parent();
              $allLinks
                .parent()
                .find('span[title=' + $allLinks.attr('defaultRating') + ']')
                .prevAll().andSelf().addClass('rating');
            });    
          }
          
        }
        $('html').ajaxSend(function(event, xhr, settings) {
            function getCookie(name) {
                var cookieValue = null;
                if (document.cookie && document.cookie != '') {
                    var cookies = document.cookie.split(';');
                    for (var i = 0; i < cookies.length; i++) {
                        var cookie = jQuery.trim(cookies[i]);
                        // Does this cookie string begin with the name we want?
                        if (cookie.substring(0, name.length + 1) == (name + '=')) {
                            cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                            break;
                        }
                    }
                }
                return cookieValue;
            }
            if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
                // Only send the token to relative URLs i.e. locally.
                xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
            }
        });


        function load_feedback(data, textStatus){
            $('#id_feedback_form').replaceWith(data).show();
        }
        function addslashes(str) {
            str=str.replace(/\'/g,'\\\'');
            str=str.replace(/\"/g,'\\x22');
            return str;
        }
        function stripslashes(str) {
        return str;
        }
