// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

jQuery.noConflict();

(function($){

    function transition(){
        var next = jQuery(".slideshow:visible").next();
        jQuery(".slideshow:visible").fadeOut(1000);
        
        if(next.length == 0)
            var next = jQuery(".slideshow-container div:first");

        next.fadeIn(1000);
        setTimeout(transition, 5000);
    }

    jQuery(function(){
       //$(".slideshow").
       var t1 = jQuery(".slideshow-container div:first");
       $(".slideshow-container div:first").fadeIn(1000);
       if(jQuery(".slideshow-container").length == 1 && jQuery(".slideshow-container div").length > 1)
        setTimeout(transition, 2000);



        jQuery("#static-scroller-pictures .static-scroller-container:gt(0)").hide();

       if(jQuery.browser.msie)
            jQuery("#static-scroller-pictures .static-scroller-container:gt(0) .description").hide();
        
	    jQuery("#static-scroller-pictures a.close").click(toggleDescription);
        jQuery("#static-scroller div#prev a").click(backImage);
        jQuery("#static-scroller div#next a").click(forwardImage);
        
        //make the subcategory edits ajax
        jQuery(".category-listing .delete-link").click(doSubCategoryDelete);
        jQuery(".category-listing .edit-link").click(doSubCategoryEdit);
        jQuery(".category-listing .edit-form").submit(SubCategoryEditPost);
    });



})(jQuery);

function doSubCategoryDelete(){

    var form = jQuery(this).siblings(".delete-form");
    var text = jQuery(this).parent().find("p").text();
    if(confirm("Delete: " + text + "?"))
        {
            jQuery.post(form[0].action, form.serialize(), function(){jQuery(form).parent().remove()})
        }
}
function SubCategoryEditPost(){
    
    var form = jQuery(this);
    var pele = form.parent().find('p');
    
        jQuery.post(form[0].action, form.serialize(), function(){
            pele.text(form.find(':text').val())
            form.hide();
            form.parent().find("p, a").show();
            jQuery(".flash").text("Subcategory was successfully updated.").show().fadeOut(2000);
        });
        return false;
}
function doSubCategoryEdit(){
    var form = jQuery(this).siblings(".edit-form");
    var pele = jQuery(this).parent().find('p');

    form.show();
    form.parent().find("p, a").hide();
    
//        return false;
//    })
}
function cancelSubcategoryEdit(ele){
    jQuery(ele).parent().hide().parent().find("p, a").show();

}
function newdone(data, textstatus)
{
    jQuery("#list").append(data);
    
}
function addnew(type, superid)
{
    jQuery.get("/" + type + "/new", {superid: superid}, newdone, 'html' );
}

function edit(type, id, element)
{
   function editdone(data, textstatus)
   {
       jQuery(element).parent().replaceWith(data);
   }
   jQuery.get("/" + type + "/" + id + "/edit");
}

function deleter(type, id, element)
{
    var con = confirm("are you sure?");
    jQuery.post("/" + type + "/" + id, {_method: "delete"}, function(data, status){jQuery(element).remove()});
}

function createme(element, type)
{

    function createfinished(data, textstatus)
    {
        jQuery(element).parents('ul').append(data);
        jQuery(element).parent().remove();
        
    }

    jQuery.post("/" + type,jQuery(element).parents('form').serialize(), createfinished, 'html' );
    var x = 1;
}

function doSlideshowRetrieve(model, element)
{
    jQuery.get("/" + model + "/" + element.value + "/slideshow", {}, function(data, status){
        jQuery('#slideshow-edit').html(data).find("form").submit(organizesubmit);
        }, 'html');
}
function choose(element)
{
    doSlideshowRetrieve('categories', element);
}

function chooseSub(element)
{
    doSlideshowRetrieve('subcategories', element);
}

function replaceSubs(hclass, newdata)
{
    var subselect = jQuery("select" + hclass);
    subselect.empty();
    subselect.append('<option value=""></option>');
    jQuery.each(newdata, function(index, obj){
        var newelement = '<option value="' + obj.value + '">' + obj.title + '</option>';
        subselect.append(jQuery(newelement));
    });
}

function updateSubCategoryListSpecific(element, id)
{
    if(element.value == "")
        return;
    
    jQuery.get("/categories/" + element.value + "/sublist", {}, function(data, status){replaceSubs(id, data)}, 'json');
}

function updateSubCategoryList(element)
{
    if(element.value == "") return;
    jQuery.get("/categories/" + element.value + "/sublist", {}, function(data, status){replaceSubs('.subcategory-select', data)}, 'json');
}

function appendImage(element)
{


    var container = jQuery("#images");

    /*if(container.children().length >= 8)
        return;*/

    var blank = container.children().eq(0).clone();
    blank.appendTo(container);
    blank.find('input[type="button"], img').remove();
    blank.find('input[type="file"]').parent().show();
    blank.find('input, textarea').each(function(){jQuery(this).val('')});
    blank.find('.number').text(container.children().length);
}

function updateProjectList(element)
{
    if(element.value == "") return;
    jQuery.get("/subcategories/" + element.value + "/projlist", {}, function(data, status){replaceSubs('.project-select', data)}, 'json');
}

function updateProjectListEditPage(element)
{
	if(element.value == "") return;
	jQuery.get("/subcategories/" + element.value + "/projlist", {}, function(data, status){addProjHtml('#projects', data)}, 'html');
}

function addProjHtml(selector, data)
{
	
	var $container = jQuery(selector);
	$container.empty();
	$container.html(data);
	$container.find('a').click(getProjectForm);
	
	hookDragDrop(jQuery("#projects"), function(item){
		return item.find('form')[0];
	});
}

function addProj(selector, data)
{
/*
    var subselect = jQuery("select" + hclass);
    subselect.empty();
    subselect.append('<option value=""></option>');
    jQuery.each(newdata, function(index, obj){
        var newelement = '<option value="' + obj.value + '">' + obj.title + '</option>';
        subselect.append(jQuery(newelement));
    });
	*/
	var $container = jQuery(selector);
	$container.empty();
	jQuery.each(data, function(index, obj){
		var $a = jQuery('<a/>').attr('href', '/projects/' + obj.value + '/edit').click(getProjectForm).text(obj.title);
		var $form = jQuery('<form/>').attr('action', '/projects/reorder/' + obj.value);
		$form.append(jQuery("<input type='hidden' name='order' class='order'/>").val(obj.order));
		jQuery("<div class='draggable'/>").append($a).append($form).appendTo($container);
		//jQuery("<div class='draggable'><p>&nbsp;</p></div>").appendTo($container);
	});
	hookDragDrop("#projects", function(item){
			return item.find('form')[0];
		});
}

function getProjectForm(e)
{
	e.preventDefault();
	
	jQuery.get(this.href, {}, function(data,status){
			jQuery("#project").html(data); 
			hookDragDrop(jQuery("#project"), function(item){
				return jQuery('div#project form.edit-form')[0];
			});
		}, 'html' 
	);
}
/*
function getProjectForm(element)
{
    jQuery.get("/projects/" + element.value + "/edit", {}, 
		function(data,status){
			jQuery("#project").html(data); 
			hookDragDrop(function(item){
				return jQuery('div#project form.edit-form')[0];
			});
		}, 'html' 
	);
}*/

function removeThisImage(element)
{
    var parent = jQuery(element).parents('.alter-images');
    parent.slideUp("fast", function(){
        parent.remove();
        jQuery("#images").find('.number').each(function(i){ jQuery(this).text(i + 1)});
    });
    
}

function changeThisImage(element)
{
    jQuery(element).parents('.alter-images').find('input[type="file"]').parent().show();
    jQuery(element).parents('.alter-images').find('img, input[type="button"]').remove();
}

function removeimage()
{
    jQuery(this).remove();
}

function organizesubmit()
{
    var formelements = jQuery('form#slideshow input.imageid');

    jQuery.each(jQuery('#current-images img'), function(i){
       jQuery(formelements[i]).val(jQuery(this).attr('title'));
    });
}

jQuery(function(){
   jQuery('#current-images img').live("click", removeimage);
   jQuery("#images img").live('click', addimage);
   jQuery('form#slideshow').submit(organizesubmit);
   jQuery("#right-menu li:not(.seperator):not(.selected)").click(
    function(){
        document.location = jQuery(this).find('a').attr('href');
    }).hover(function(){jQuery(this).css('font-weight', 'bold')}, function(){jQuery(this).css('font-weight', '')});
});

function addimage()
{
    if(jQuery('#current-images img').length < 8)
        jQuery('#current-images').append(this);
    return false;
}

function get_images(element)
{
    jQuery.get("/projects/" + element.value + "/images", {},
        function(data, status){
            var x = 1;
            jQuery("#images").empty();
            jQuery.each(data, function(i){
                jQuery("<img height='50' width='50' src='/images/pictures/" + this.filename + "' title='" + this.id + "' />").appendTo(jQuery("#images"));
            })
        }, 'json');
}

function addMapping(element)
{
    
    var prev = jQuery('#mapping-category');
    var t1 = jQuery('option:selected', prev);
    var t2 = jQuery('option:selected', element);
    var newdiv = jQuery("<div class='map'></div>").text(jQuery('option:selected', prev).text() + " > " + jQuery('option:selected', element).text()).prependTo("#mappings");
    newdiv.append("<a href='#' onclick='removeMapping(this);return false'>Remove</a>");
    jQuery("<input name='project[subcategory][]' type='hidden'></input>").val(jQuery(element).val()).appendTo(newdiv);
}

function removeMapping(element)
{

    var jele = jQuery(element);
    jele.parent().remove();

}

function doDeletePost(ele)
{

    jQuery.post(ele.href, {_method:'delete', authenticity_token:jQuery(ele).parents('form').find("input[name='authenticity_token']").val()},
        function(){
            jQuery("#project").html('');
        }, 'html'
    );
}

function toggleDescription(element)
{
        var x = jQuery(this).siblings('div');
        jQuery(this).siblings('div').slideToggle(250);
        return false;
}

function backImage(event)
{
    var previous = jQuery("#static-scroller-pictures .static-scroller-container:visible:first").prev();
    if(previous.length == 0)
        previous = jQuery("#static-scroller-pictures .static-scroller-container:last");

    switchTo(previous);
}

function forwardImage(event)
{
    var next = jQuery("#static-scroller-pictures .static-scroller-container:visible:last").next();
    if(next.length == 0)
        next = jQuery("#static-scroller-pictures .static-scroller-container:first");

    switchTo(next);
}

function switchTo(ele)
{
	jQuery("#static-scroller #title span").text(ele.find(".title").text());

    if(jQuery.browser.msie)
        jQuery("#static-scroller-pictures .static-scroller-container:visible .description").hide();

    jQuery("#static-scroller-pictures .static-scroller-container:visible").fadeOut(750);
    //var description = jQuery("#static-scroller-pictures .static-scroller-container:eq(" + index + ") .description");

    document.location.hash = "#" + ele.find("img").attr('title');

    ele.fadeIn(500, function(){
        if(jQuery.browser.msie){
            this.style.removeAttribute('filter');
            jQuery(this).find(".description").show();
        }});
}
 
