

var logi = 0;
function LOG(a){
	$('<div />').html(logi+' :: '+ a).appendTo('body');
	logi++;
}

//log obejct
function LOGO(obj){
	var a = '';
	for(var i in obj){
		try{
			a += '<br/><b>'+i+ "</b> = " + obj[i] + "\n";
		}catch(m){
			a += '<br/><b>'+i+"</b> -- not allowed -- \n";
		}
	}
	LOG(a);
}

//gpEasy functions
gpadmin = new Object();

gpadmin.uploadFile=function(el){
	el.parentNode.className = 'active';
	
	var t = el.value.toString();
	while(pos = t.search('\\\\')){
		if( pos == -1){
			break;
		}
		t = t.substr(pos+1);
	}
	
	$('<div><a href="javascript:void(0)" onclick="gpadmin.rmFile(this)" >Remove</a><div class="name">'+t + '</div></div>').appendTo(el.parentNode);
	
	if( $('#gp_upload_list .active').size() < 5 ){
		gpadmin.addFile();
	}
}

gpadmin.addFile=function(){
	$('#gp_upload_field').clone().attr('id','').attr('class','upload_ready').appendTo('#gp_upload_list');
}

gpadmin.rmFile = function(el){
	$(el).closest('.active').remove();
	if( $('#gp_upload_list .upload_ready').size() < 1 ){
		gpadmin.addFile();
	}
}


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return false;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


	
/*
AJAX w/ jQuery
*/
function loading(){
	var a = $('#loading').fadeIn('slow');
	var b = $('body').prepend(a);
}
function jGoTo(a){
	loading();
	a += ( a.indexOf('?') == -1 ) ? '?' : '&';
	a += 'gpx=true&jsoncallback=?';
	$.getJSON(a,ajaxResponse);
}

//reload page with arguments (a) set as a cookie
function cGoTo(a){
	createCookie('cookie_cmd',encodeURIComponent(a),1);
	//window.location.reload(); //not good to use after POST requests
	var b = window.location.href;
	window.location = b;
}

function ajaxResponse(data){
	for( i in data ){
		switch(data[i].DO){
			case 'replace':
				$(data[i].SELECTOR).replaceWith(data[i].CONTENT);
			break;
			case 'eval':
				eval(data[i].CONTENT);
			break;
			default:
				alert('nothing for: '+data[i].DO);
			break;
		}
	}
}



/* 
INIT ADMIN
*/
$(function(){
	
	function showLinks(){
		$('.req_script').show();
		$('.without_script').hide();
	}
	
	
	//move panel
	//gpadmin.MovePanel();
	var a = $('#simplepanel').show().css({'display':'block','margin':'0','top':'0','position':'fixed'});
	var b = $('body').prepend(a);
	if( !IE6 ){
		a.css({'width':'100%'});
		b.css({'marginTop':a.attr('offsetHeight')+'px'});
	}
	
	
	//get a list of edit_area's for the edit_link
	//and highlight areas when list links are hovered over
	$('a[name=edit_link]').each(function(a,b){
		a = $(b).clone().removeAttr('name').removeAttr('class').text(b.title.replace(/_/g,' '));
		a.hover(function(){
			$(b).closest('div[class=editable_area]').css({'border':'1px solid #f00','padding':'0'});
		},function(){
			if( IE6 ){
				$(b).closest('div[class=editable_area]').css({'border':'0 none','padding':'1px'});
			}else{
				$(b).closest('div[class=editable_area]').css({'borderColor':'transparent'});
			}
		});
			
		$('#edit_list').append($('<li/>').append(a));
	});
	
	
	//highlight edit_areas
	$('a[name=edit_link]').hover(function(e){
		$(e.target).closest('div[class=editable_area]').css({'border':'1px solid #f00','padding':'0'});
	},function(e){
		if( IE6 ){
			$(e.target).closest('div[class=editable_area]').css({'border':'0 none','padding':'1px'});
		}else{
			$(e.target).closest('div[class=editable_area]').css({'borderColor':'transparent'});
		}
	});	
	
	
	
	
	//show/hide edit links
	if( readCookie('hide_edit_area') ){
		$('.ExtraEditLink').hide().addClass('edit_area');
	}
	
	function toggle_edit_links(){
		var c = 'hide_edit_area';
		if( readCookie(c) ){
			eraseCookie(c);
			$('.ExtraEditLink').show().removeClass('edit_area');
		}else{
			createCookie(c,c,1000);
			$('.ExtraEditLink').hide().addClass('edit_area');
		}
	}
	
	
	//show/hide edit links when hovering over 
	$('div[class=editable_area]').hover(function(){
		$(this).find('.edit_area').show();
	},function(){
		$(this).find('.edit_area').hide();
	});

	
	
	showLinks();
	
	$().ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError){
		//LOGO( XMLHttpRequest);
		alert('Error fetching response. Reload this page to continue.');
	}).ajaxSuccess(function(){
		$.fn.colorbox.close();
		$('#loading').fadeOut();
		showLinks();
	});
	

	//
	//	AJAX POSTing
	//
	$('input[class=gpajax]').live('click',function(e){
		loading();
		var frm = $(this).closest('form');
		var a = frm.serialize();
		a += '&gpx=true&jsoncallback=?';
		$.post(frm.attr('action'), a, ajaxResponse, 'json');
		return false;
	});
	
	
	//menu
	$('.menu_expand_child').hover(function(){
		$(this).addClass('expand');
		if( $(this).hasClass('simple_top') ){
			$(this).addClass('simple_top_hover');
		}
	},function(){
		$(this).removeClass('expand').removeClass('simple_top_hover');
	});
	
	
	//ie hack!
	if( IE6 ){
		var zIndexNumber = 1000;
		//$('#menuconfig li').each(function() {
		$('.menu_expand_child').each(function() {
			$(this).css('zIndex', zIndexNumber);
			zIndexNumber -= 10;
		});
	}

	
	
	//
	//live anchor clicks with name
	//
	
	//one function for all anchor clicks
	$('a[name]').live('click',function(e){
		
			var a = $(this).attr('name');
			var b = $(this).attr('rel');
			switch(a){
				case 'toggle_edit_links':
					toggle_edit_links();
				break;
				case 'inline_box':
						//assign values to the form based on hidden input elements
						var c = $(b).find('form').get(0);
						if( c ){
							$(this).find('input').each(function(i,j){
								if( c[j.name] ){
									c[j.name].value = j.value;
								}
							});
						}
						
						//show inline_box in colorbox
						$.fn.colorbox({opacity:0.75,inline:true,href:b, open:true});
					
				break;
				case 'gpajax':
					jGoTo(this.href);
				break;
				case 'creq':
					cGoTo(this.search);
				break;
				case 'close_message':
					this.parentNode.style.display='none';
				break;
				case 'gallery':
					var c = 'a[rel='+b+']';
					$(c).colorbox({opacity:0.75,maxWidth:"90%",maxHeight:"90%",resize:true,minWidth:"300",minHeight:"300"});
					$(this).triggerHandler('click.colorbox'); //so the image that was clicked will be shown
				break;
				default:
				return true;
			}
		return false;
	});
	
	
	
	//select style menus
	function HideRows(){
		$('.new_page_position .cell').unbind('click',MenuClick);
		$().unbind('click',HideRows);
		$().unbind('keydown.rows');
		
		$('.new_page_position .row').hide();
		$('.new_page_position .selected').closest('.row').show();
	}

	function MenuClick(){
		$(this).closest('.new_page_position').find('.selected').removeClass('selected');
		$(this).addClass('selected');
		HideRows();
		
		$(this).closest('.new_page_position').find('input').val($(this).attr('rel'));
		
		return false;
	}

	$('.new_page_position').click(function(e){
		
		$(this).find('.row').show();
		$('.new_page_position .cell').bind('click',MenuClick);
		
		$().bind('click',HideRows);
		$().bind('keydown.rows', function (e) {
			if (e.keyCode === 27) {
				e.preventDefault();
				HideRows();
			}
		});
		
		e.stopPropagation();
	});

	HideRows();
	
	
	
	
	//erase cookie_cmd
	eraseCookie('cookie_cmd');

});




