var Ajax;
if (Ajax && (Ajax != null)) {
	Ajax.Responders.register({
	  onCreate: function() {
        if($('spinner') && Ajax.activeRequestCount>0)
          Effect.Appear('spinner',{duration:0.5,queue:'end'});
	  },
	  onComplete: function() {
        if($('spinner') && Ajax.activeRequestCount==0)
          Effect.Fade('spinner',{duration:0.5,queue:'end'});
	  }
	});
}



var DropDownMenu = Class.create();

DropDownMenu.prototype = {

 initialize: function(menuElement) {
	menuElement.childElements().each(function(node){
		// if there is a submenu
		var submenu = $A(node.getElementsByTagName("ul")).first();
		if(submenu != null){
			// make sub-menu invisible
			Element.extend(submenu).setStyle({display: 'none'});
			// toggle the visibility of the submenu
			node.onmouseover = node.onmouseout = function(){
				Element.toggle(submenu);
			}
		}
	});
}

};

function bookmark(url, description)
{

bookmarkurl=url
bookmarktitle=description
if (document.all)
window.external.AddFavorite(bookmarkurl,bookmarktitle)
else if (window.sidebar) // firefox
window.sidebar.addPanel(bookmarktitle, bookmarkurl, "");
}

function changeLanguage(lang){
	
	var _cu = window.location.href;
	var _u = _cu;
	var param_pattern = /.+?.+=.+/;
	var odl_pattern = /kyl=[^&$=]+/;

	if(odl_pattern.test(_cu)){
		_u = _cu.replace(odl_pattern, "kyl=" + lang);
	}else{
		if(param_pattern.test(_cu)){
			_u = _cu + "&kyl=" + lang;
		}else{
			_u = _cu + "?kyl=" + lang;
		}
	}
	window.location.href = _u;
}

    
function wait(millis) 
{
    var date = new Date();
    var curDate = null;

    do { curDate = new Date(); } 
    while(curDate-date < millis);
} 

function insertParam(key, value) 
{ 
    key = escape(key); value = escape(value); 
    var kvp = document.location.search.substr(1).split('&'); 
    var i=kvp.length;
    var x; 
    while(i--)  
    { 
        x = kvp[i].split('='); 
        if (x[0]==key) 
        { 
                x[1] = value; 
                kvp[i] = x.join('='); 
                break; 
        } 
    } 
    if(i<0) {kvp[kvp.length] = [key,value].join('=');} 
    //this will reload the page, it's likely better to store this until finished 
    document.location.search = kvp.join('&');  
} 




var AjaxAction = Class.create();
AjaxAction.prototype = {
  initialize: function(context, suffix) {
    this.context = context;
    this.suffix = suffix;
  },
  
  call: function(url, parameters, containerid){
	  
	  if(containerid ){
	  parameters.onLoading = function (response){
			var _c = $(containerid);
			_c.update(" <div class='progress_div'><img src='" + _root + "/images/spinner1.gif' alt='Loading' width='36' height='36' /></div>");
		};
		
		parameters.onFailure = function (response){
			var _c = $(containerid);
			_c.update(" <div class='progress_div'>Network Error.  Try to refresh the page.</div>");
		};
		

		parameters.onException = function (response){
			var _c = $(containerid);
			_c.update(" <div class='progress_div'>Unknown Error. Try to refresh the page.</div>");
		};
	  }
		if(parameters.method == null){
			parameters.method = "get";
		}
		
	  new Ajax.Request(this.context + url + "." + this.suffix, parameters);
			  
  }
};
//ajax
function fill_container(containerid, remotePage, parameters, callback){

	parameters.onCreate = function (response){
		var _c = $(containerid);
		_c.update(" <div class='progress_div'><img src='" + _root + "/images/spinner1.gif' alt='Loading' width='36' height='36' /></div>");
	};
	
	parameters.onFailure = function (response){
		var _c = $(containerid);
		_c.update(" <div class='progress_div'>Network Error.  Try to refresh the page.</div>");
	};
	

	parameters.onException = function (response){
		var _c = $(containerid);
		_c.update(" <div class='progress_div'>Unknown Error. Try to refresh the page.</div>");
	};
	
	new Ajax.Updater(
			containerid,
			remotePage,
			parameters);
	
	
}
//end of ajax

function showTaskList(source, targetId){

	if(inEditing == true){
		   cancelInlineEdit();
	}
	$$(".dashboard_list_table").each(function(item){
			
			item.hide();								 
	});
	$(targetId).show();
	var s = $(source);
	$$(".task_list_header td").each(function(item){
			item.removeClassName("active_task_list_title");	
	});
	s.addClassName("active_task_list_title");
	
  }


var inEditing = false;

var categoryOwnership = new Hash();
var _cusers = new Hash();

function changeAssignee(uid){

	var newAssigneeContainer = $("newAssignee");
	var newAssigneeHidden = $("newAssignee").childElements()[0];
	newAssigneeHidden.value = uid;

}
function changeCategory(cid, uid){
	
	var newAssigneeContainer = $("newAssignee");
	var newAssigneeDropDown = $("newAssignee").childElements()[1];
	
	newAssigneeDropDown.update("");
	newAssigneeDropDown.value = null;
	newAssigneeContainer.hide();
	
	if(cid == "" || cid == null){
		return;
	}
	var users = categoryOwnership.get("" + cid);
	var keys = users.keys();
	if(keys == null || keys.length == 0 || (keys.length == 1 && keys[0] != null && keys[0] == currentUID)){
		return;
	}

	keys.each(function(key){
		
		var item = new Element("option");	
		
		item.label = users.get(key);
		if(key == uid){
			item.value = "";
			item.selected = true;
		}else{
			item.value = key;
		}
		newAssigneeDropDown.insert(item);
	});
	newAssigneeContainer.show();
}

