// Admin tabs plugin
(function() {
  jQuery.fn.prevWrap = function(){
	var prev = jQuery(this).prev();
	if(prev.length) return prev;
	return jQuery(this).siblings().filter(':last-child');
  };
  jQuery.fn.nextWrap = function(){
	var next = jQuery(this).next();
	if(next.length) return next;
	return jQuery(this).siblings().filter(':first-child');
  };
})();


(function() {
  jQuery.fn.i3Tabs = function(){
	  var container = $(this);
	  var tabHeaders = container.children('.mainTabs').children('li');
	  var tabs = container.find('.MSTabs_container');
	  tabs.hide();
	  tabHeaders.children('a').click(function(e){
		e.preventDefault();
		tabHeaders.removeClass('active');
		jQuery(this).parent().addClass('active');
		tabs.filter('.active').hide().removeClass('active');
		jQuery(this.hash).addClass('active').show();
	  });
	  var current = tabHeaders.filter('.active');
	  if(current.length)
	  {
		jQuery(current).children('a').click();
	  } else {
		tabHeaders.filter(':first-child').children('a').click();
	  }
	  // Add scrolling
	  container.children('.mainTabs').wheel(function(e,d){
		if(d>0)
		{
		  tabHeaders.filter('.active').prevWrap().children('a').click();
		}
		else
		{
		  tabHeaders.filter('.active').nextWrap().children('a').click();
		}
		return false;
	  });
  };
	
	
		
	$('a','div.banner').attr('target','_blank'); 
	$('div.banner').click(function(){
		$.post('/pages_actions/cms_banner_click.php',{id: $(this).attr('rel')});  
	});
		
})();             


$(document).ready(function() {
   
	$('.date-pick').datepicker({dateFormat:'dd/mm/yy',  yearRange: "-90:+15"});
	
	$('.slider').slider(
	{
		min:1,
		max:10,
		steps:10,
		change: function()
		{
			rel = $(this).attr('rel');
			$('#attribute'+rel).val($('#slider'+rel).slider('value'));
		}
	});                                      
														 
	$('#a_toggle').click(function(){$('#CMS-ANNOUNCEMENTS').slideToggle();});                                                     
	$('#a_infoToggle').click(function(){$('#imageInfo').slideToggle();});
	
	$.extend($.fn.media.defaults,{ 
		preferMeta:    1,         // true if markup metadata takes precedence over options object 
		autoplay:      1,         // normalized cross-player setting 
		bgColor:	   'transparent',
		params : {
			allowfullscreen: true
		},
		flashVersion:  '8',       // required flash version 
	 
		// default flash video and mp3 player 
		// @see: http://jeroenwijering.com/?item=Flash_Media_Player 
		flvPlayer:     '/_ui/flash/mediaplayer.swf', 
		mp3Player:     '/_ui/flash/mediaplayer.swf'
		 
	}); 
	
	$.each($(".media"), function (key, node) {
		
		var opts = {autoplay: true, params: {}};
		opts.bgColor = $(this).attr('bgColor');
		opts.params.wmode = $(this).attr('wmode');
		$(this).media(opts);
	});
	$('.show_media').hide();
	$('.enable_preview').click(function(){    
		$('.show_media').hide(); 
		  $('#media-'+$(this).attr('rel')).toggle();
	});
	
	$("input:text, textarea, input:password").each(function(){
		if(this.value == '')
			this.value = this.title;
	});
	$("input:text, textarea, input:password").click(function(){
		if(this.value == this.title)
			this.value = '';
	});
	$("input:text, textarea, input:password").blur(function(){
		if(this.value == '')
			this.value = this.title;
	});
	$("input:image, input:button, button:submit").click(function(){
		$(this.form.elements).each(function(){
			if(this.type =='text' || this.type =='textarea' || this.type =='password'){
				if(this.value == this.title && this.title != ''){
					this.value='';
				}
			}
		});
	});                            
	
	function serialize(s)
	{
		serial = $.SortSerialize(s);
		alert(serial.hash);
	};    
	
	$('.toggleLink').click(function(e){
	  e.preventDefault();
	  $(this.hash).slideToggle();
	});
	
	$('.select_all').click(function(e){
		e.preventDefault();
		$('input:checkbox').attr('checked',true); 
	}); 
	$('.select_invert').click(function(e){
		e.preventDefault();         
		$('input:checkbox').each(function(){       
			if($(this).attr('checked'))
				$(this).attr('checked',false);
			else
			{
				if(!$(this).attr('disabled'))
				$(this).attr('checked',true); 
			}
		})
	}); 
	
 });
 
  function updateHiddenField(field,theValue){
	$('#'+field).val(theValue).change();
  }
 
	function popUp(URL) 
	{
		day = new Date();
		id = day.getTime();
		eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=800,height=700,left = 440,top = 250');");
	}                  
	function GetValueFromChild(myVal)
	{
		document.getElementById('cms_templates_id').value = myVal;
	}
	
	function clear_search_form()
	{
		$('#subcats').children().attr('selected', '');
		$('#sector').children().attr('selected', '');
		$('#keyword').val('');
	}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj && obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return {x: curleft, y: curtop};
}

function displayQuestions(data, callback)
{
    var container = $('#question');
    if (container.length == 0)
    {
        $(document).find('body').append("<div id='question' style=''></div>");
        container = $('#question');
    }

    container.dialog({
        autoOpen: true,
        show: 'drop',
        title: data.title || "<img src='/_ui/media/ihouseu_media/topheader/logos/ihouseu.gif' class='activeLogo'/>",
        hide: 'explode',
        modal: true,
        width: data.width,
        height: data.height,
        open: data.open,
        beforeclose: function(ev)
        {
            container.dialog('destroy');

            if (data.close)
                data.close();
        },
        buttons: data.buttons
    });

    container.html(data.message?data.message:'');

    if (callback)
        callback();
}

function displaySubmit(data, callback)
{
    data.buttons = {'Submit': function()
    {
        $('#question').dialog('destroy');

        if (data.submit)
            data.submit();
    }};

    displayQuestions(data, callback);
}

function displaySimpleQuestion(data, callback)
{
    data.buttons = {'Yes': function()
    {
        $('#question').dialog('destroy');

        if (data.yes)
            data.yes();

    }, 'No': function()
    {
        $('#question').dialog('destroy');

        if (data.no)
            data.no();
    }};
    displayQuestions(data, callback);
}

function displayOptions(data, callback)
{
    data.message += "<br/><br/><select name='options'>";
    if (data.options)
    for(var i in data.options)
        data.message += "<option value='"+i+"'>"+data.options[i]+"</option>";
    data.message += "</select>";

    displaySubmit(data, callback);
}

function tagFile(path, additional)
{
    $.getJSON('/pages_actions/cms_files_get_info.php',{src: path},function(data)
    {
        for (var index in additional)
            data[index] = additional[index];

        displayDescribeForm(path, data);
    });
}

function displayDescribeForm(file, data)
{
  var tagData = {title: 'Please describe your file', height: 400, width: 800}
  tagData.message = "<form class='popUpForm'><div id='tagForm'><div class='tabs'><span class='tab selected' rel='describe'><span class='transLightDarkktopLeft'></span><span class='transLightDarkktopRight'></span>Describe</span><span class='tab' rel='categorise'><span class='transLightDarkktopLeft'></span><span class='transLightDarkktopRight'></span>Categorise</span><span class='tab' rel='tag'><span class='transLightDarkktopLeft'></span><span class='transLightDarkktopRight'></span>Tag</span><span class='clearAll'></span></div><div class='content'>";

  var describe = "<div id='describe' class='hidden'><p><label class='bWidth'>File title: </label><input class='txtF' type='text' name='title' value='"+data.title+"'></p><p><label class='bWidth'>File description: </label><textarea style='height: 200px;' class='txtA' name='description'>"+data.description+"</textarea></p></div>";
  tagData.message += describe;

  var categorise = "<div id='categorise' class='hidden'><p><label class='bWidth'>Category: <br /><small>Hold ctrl+click to select multiple</small></label> <div style='overflow: auto; height: 300px'>"+data.categories+"</div></p></div>";
  tagData.message += categorise;

  var tag = "<div id='tag' class='hidden'><p><label class='bWidth'>Tag: </label><textarea name='tags' style='height:200px;' class='txtA'>"+data.tags+"</textarea></div></p>";
  tagData.message += tag;

  tagData.message += "</div></div></form>";

  tagData.submit = function()
  {
    var title = $('#tagForm').find('[name=title]').val();
    var description = $('#tagForm').find('[name=description]').val();
    var tags = $('#tagForm').find('[name=tags]').val();
    var categories = $('#tagForm').find('[name^=categories]').val();
    var category = "";

    if (title != data.title || description != data.description || data.changed)
    updateFileInfo({title: title, description: description, "categories[]": categories, tags: tags}, file, function()
    {
        if (data.submit)
            data.submit();
    });
  };

  tagData.close = function()
  {
      if (data.close)
        data.close();
  }

  displaySubmit(tagData);

  // actions performed after showing the dialog
  $('#tagForm').find('[name^=categories], [name=tags]').change(function()
  {
      data.changed = true;
  });

  $('#tagForm').find('.tab').click(function()
  {
      $('#tagForm').find('.tab.selected').removeClass('selected');
      $(this).addClass('selected');

      $('#tagForm .content > div').hide();
      $('#tagForm').find("#"+$(this).attr('rel')).show();
  });

  $('#tagForm .tab.selected').click();
}

function updateFileInfo(data, path, callback)
{
    var args = "";
    for(var index in data)
        if (typeof data[index] != "object")
            args += "&" + index + "=" + escape(data[index]);
        else
            for (var sub in data[index])
                args += "&" + index + "=" + escape(data[index][sub]);

    $.ajax({
         url:'/admin/magicfm/',
         type: 'POST',
         dataType: 'json',
         data: 'action=update_file_info&path='+path+args,
         success: function(data)
         {
            if (callback)
                callback(data)
         }});
}

window.confirmPopup = function(e, handler, callback)
{
    try
    {
        if (e)
            e.preventDefault();

        $(handler).after('<div class="confirm_dialog" id="DelDialog" style="display:none"><p></p></div>');
        var path = handler.href;
        var dialog = $(handler).siblings('.confirm_dialog');
        dialog.attr('title',handler.title);

        var cancel = $(handler).attr('cancel') ? $(handler).attr('cancel') : 'Cancel';
        var confirm = $(handler).attr('confirm') ? $(handler).attr('confirm') : 'Confirm';
        var question = $(handler).attr('question') ? $(handler).attr('question') : 'Do you want to delete ' + ($(handler).attr('rel') ? $(handler).attr('rel') : '') + '?';

        dialog.children().text(question);

        var buttons = {};
        buttons[confirm] = function () {
            if (callback)
                callback();

            var loc = String(window.location);
            var sub = escape(loc.substring(loc.indexOf('/',7))); // url without http:// and escaped
            var where = path + (path.indexOf('?')==-1?'?':'&') + 'location='+sub;

            window.location = where;
        };

        buttons[cancel] = function () {
            $(this).dialog('close');
            $(this).remove();
            $('.confirm_dialog').remove();
        };

        dialog.dialog({
            autoOpen: true,
            show: 'drop',
            resizable: false,
            height:140,
            modal: true,
            title: this.title || "<img src='/_ui/media/ihouseu_media/topheader/logos/ihouseu.gif' class='activeLogo'/>",
            overlay: {
              backgroundColor: '#000',
              opacity: 0.5
            },
            buttons: buttons
        });
        $('.ui-dialog-content').show();
    }
    catch(ex)
    {

    }
}


window.contextPopup = function(e, handler)
{
    if (e) e.preventDefault();

    var question = $(handler).attr('question') || "";
    var content = $(handler).attr('content') || "";
    var name = $(handler).attr('name') || "contextForm";
    var variables = $(handler).attr('variables') ? eval($(handler).attr('variables')) : null;

    var vars = "";
    for (var i=0; i<variables.length; i++)
        for (var index in variables[i])
            vars += "<input type='hidden' name='"+index+"' value='"+variables[i][index]+"'/>";

    var data = {title: $(handler).attr('title'), message: "<div>"+question+"</div><form name='contextForm' method='post'><textarea name='content'>"+content+"</textarea><input type='hidden' name='"+name+"' value='true'/>"+vars+"</form>", submit: function()
    {
        $("[name=contextForm]").submit();
    }};
    displaySubmit(data);
}


window.formSubmit = function(form, handler)
{
    var f = function()
    {
        if (handler)
        {
            if ($(handler)[0].nodeName == 'FORM')
            {
                $(handler).find('input, select').each(function()
                {
                    if ($(this).val() && ($(this).attr('type')=='checkbox' ? $(this).attr('checked') : true))
                        $(form).append("<input type='hidden' name='"+this.name+"' value='"+$(this).val()+"'/>");
                });
            }
            else
            {
                if ($(form).find('#js_additional').length == 0)
                {
                    if ($(handler).attr('name'))
                        $(form).append("<input id='js_additional' type='hidden' name='"+$(handler).attr('name')+"' value='"+$(handler).val()+"'/>");
                    else
                        $(form).append("<input id='js_additional' type='hidden' name='"+$(handler).val()+"' value='true'/>");
                }
                else
                {
                    if ($(handler).attr('name'))
                        $(form).find('#js_additional').attr('name',$(handler).attr('name')).val($(handler).val());
                    else
                        $(form).find('#js_additional').attr('name',$(handler).val());
                }
            }
        }

        if ($(form).find('submit, button[type=submit]').length > 0)
            $(form).find('submit, button[type=submit]').click();
        else
        {
            $(form).submit();
        }
    }

    if (handler)
    {
        if ($(handler).val() == 'delete_selected' || $(handler).val() == 'delete')
        {
            window.confirmPopup(null, handler, function()
            {
                f();
            });

            return;
        }
        else if($(handler).find(':selected').attr('confirm') || $(handler).find(':selected').attr('question'))
        {
            window.confirmPopup(null, $(handler).find(':selected'), function()
            {
                if ($(handler).find(':selected').attr('action'))
                {
                    eval($(handler).find(':selected').attr('action'));
                    return;
                }
                else
                    f();
            });

            return;
        }
        else
            if ($(handler).find(':selected').attr('action'))
            {
                eval($(handler).find(':selected').attr('action'));
                return;
            }
    }

    f();
}

window.formSelect = function(form, handler)
{
    var value = $(handler).find(':selected').val();
    switch (value)
    {
        case 'All':
            $(form).find('[type=checkbox]').attr('checked','checked');
        break;
        case 'Invert':
            $(form).find('[type=checkbox]').each(function()
            {
                if ($(this).attr('checked'))
                    $(this).removeAttr('checked');
                else
                    $(this).attr('checked','checked');
            });
        break;
        case 'None':
            $(form).find('[type=checkbox]').removeAttr('checked');
        break;
    }
}

window.editImage = function(path)
{
    var container = $('#edit_image');
    if (container.length == 0)
    {
        $(document).find('body').append("<div id='edit_image' style='display: none'></div>");
        container = $('#edit_image');
    }

    container.html('<iframe style="width:100%; height:100%; border: 0px" src="/account/magic_images/?src='+path+'"></iframe>');
    container.dialog({
    autoOpen: true,
    width: 1000,
    height: 720,
    title: 'MagicFM Images Editor',
    modal: true,
    close: function(){
        container.remove();
        $(this).dialog('destroy');
    }});
}

window.loadComments = function(container, cms_content, cms_content_id, rpp, p)
{
    $.ajax({
        url: '/pages_actions/cms_content_paginate_comments.php',
        data: {'cms_content': cms_content,
               'cms_content_id': cms_content_id,
               'rpp': rpp,
               'p': p},
        success: function(data)
        {
            container.html(data);
        }
    })
}