function Application () {
	this.name="vCollections";
	this.wspath = 'ws/vCollections.cfc';
	var myloc = window.location.href;
	var locarray = myloc.split("/");
	delete locarray[(locarray.length-1)];
	this.location = locarray.join("/");	
	this.authRequired=false;
	
	this.currentcollection=0;
	this.editingcolslide=false;
	this.cc_mode='T'; //('Course mode, Training mode, Instructional mode')
	this.cc_slides_startfrom=1;
	this.cc_slides_maxrows=20;
	this.directjumpcollection = 0;
	this.showingrecent = true;
	this.ishistorycall = false;
	
	this.appReset = new YAHOO.util.CustomEvent("appReset",this);
	this.appStart = new YAHOO.util.CustomEvent("appStart",this);
	this.appShowLogon = new YAHOO.util.CustomEvent("appShowLogon",this);
	this.appLogonReturn = new YAHOO.util.CustomEvent("appLogonReturn",this);
	this.ForceLogon = new YAHOO.util.CustomEvent("ForceLogon",this);
	this.appSendLogon = new YAHOO.util.CustomEvent("appSendLogon",this);
	this.appAuthError = new YAHOO.util.CustomEvent("appAuthError",this);
	this.appStartWork = new YAHOO.util.CustomEvent("appStartWork",this);
	this.appGetLookupData = new YAHOO.util.CustomEvent("appGetLookupData",this);
	this.appGetLookupDataReturn = new YAHOO.util.CustomEvent("appGetLookupDataReturn",this);
	this.getAllCGs = new YAHOO.util.CustomEvent("getAllCGs",this);
	this.AllCGsReturn = new YAHOO.util.CustomEvent("AllCGsReturn",this);
	this.DeleteCG = new YAHOO.util.CustomEvent("DeleteCG",this);
	this.DeleteCGReturn = new YAHOO.util.CustomEvent("DeleteCGReturn",this);
	this.showAddCG = new YAHOO.util.CustomEvent("showAddCG",this);
	this.AddCG = new YAHOO.util.CustomEvent("AddCG",this);
	this.AddCGReturn = new YAHOO.util.CustomEvent("AddCGReturn",this);
	this.CancelAddCG = new YAHOO.util.CustomEvent("CancelAddCG",this);
	this.ResortCGs = new YAHOO.util.CustomEvent("ResortCGs",this);
	this.ResortCGsReturn = new YAHOO.util.CustomEvent("ResortCGsReturn",this);
	this.showEditCG = new YAHOO.util.CustomEvent("showEditCG",this);
	this.EditCG = new YAHOO.util.CustomEvent("EditCG",this);
	this.EditCGReturn = new YAHOO.util.CustomEvent("EditCGReturn",this);
	this.CancelEditCG = new YAHOO.util.CustomEvent("CancelEditCG",this);
	this.ForceLogoff= new YAHOO.util.CustomEvent("ForceLogoff",this);


	this.getCollections = new YAHOO.util.CustomEvent("getCollections",this);
	this.getCollectionsReturn = new YAHOO.util.CustomEvent("getCollectionsReturn",this);
	this.AddCollection = new YAHOO.util.CustomEvent("AddCollection",this);
	this.EditCollection = new YAHOO.util.CustomEvent("EditCollection",this);
	this.SaveCollectionReturn = new YAHOO.util.CustomEvent("SaveCollectionReturn",this);	
	this.SaveCollection = new YAHOO.util.CustomEvent("SaveCollection",this);
	this.ShowCollections = new YAHOO.util.CustomEvent("ShowCollections",this);
	this.SearchCollections = new YAHOO.util.CustomEvent("SearchCollections",this);
	this.showSearchForm = new YAHOO.util.CustomEvent("showSearchForm",this);	
	this.startSearch = new YAHOO.util.CustomEvent("startSearch",this);		
	this.startSearchReturn = new YAHOO.util.CustomEvent("startSearchReturn",this);
	this.SearchCollectionsReturn = new YAHOO.util.CustomEvent("SearchCollectionsReturn",this);
	this.GetCollection = new YAHOO.util.CustomEvent("GetCollection",this);
	this.GetCollectionv = new YAHOO.util.CustomEvent("GetCollectionv",this);
	this.GetCollectionView = new YAHOO.util.CustomEvent("GetCollectionView",this);	
	this.GetCollectionReturn = new YAHOO.util.CustomEvent("GetCollectionReturn",this);
	this.GetCollectionvReturn = new YAHOO.util.CustomEvent("GetCollectionvReturn",this);
	this.getCollectionvSlidesTableReturn = new YAHOO.util.CustomEvent("getCollectionvSlidesTableReturn",this);
	this.getCollectionvSlidesTable = new YAHOO.util.CustomEvent("getCollectionvSlidesTable",this);
	
	this.GetCollectionViewReturn = new YAHOO.util.CustomEvent("GetCollectionViewReturn",this);
	this.DisplayCollection = new YAHOO.util.CustomEvent("DisplayCollection",this);
	this.DisplayCollectionReturn = new YAHOO.util.CustomEvent("DisplayCollectionReturn",this);
	this.AddCGtoCol = new YAHOO.util.CustomEvent("AddCGtoCol",this);	
	this.AddCGtoColReturn = new YAHOO.util.CustomEvent("AddCGtoColReturn",this);
	this.RemoveCGfromCol = new YAHOO.util.CustomEvent("RemoveCGfromCol",this);
	this.RemoveCGFromColReturn = new YAHOO.util.CustomEvent("RemoveCGFromColReturn",this);
	this.DeleteCollection = new YAHOO.util.CustomEvent("DeleteCollection",this);
	this.DeleteCollectionReturn = new YAHOO.util.CustomEvent("DeleteCollectionReturn",this);

	this.getDiagnosis = new YAHOO.util.CustomEvent("getDiagnosis",this);
	this.getDiagnosisReturn = new YAHOO.util.CustomEvent("getDiagnosisReturn",this);
	this.getCourseinfo = new YAHOO.util.CustomEvent("getCourseinfo",this);
	this.getCourseinfoReturn = new YAHOO.util.CustomEvent("getCourseinfoReturn",this);
	
	this.getAlldiagnoses = new YAHOO.util.CustomEvent("getAlldiagnoses",this);
	this.getAlldiagnosesReturn = new YAHOO.util.CustomEvent("getAlliagnosesReturn",this);
	this.getAllcourseinfo = new YAHOO.util.CustomEvent("getAllcourseinfo",this);
	this.getAllcourseinfoReturn = new YAHOO.util.CustomEvent("getAllcourseinfoReturn",this);

	
	this.showSearchResult = new YAHOO.util.CustomEvent("showSearchResult",this);
	this.StartRecentSearch = new YAHOO.util.CustomEvent("StartRecentSearch",this);
	this.Showcollectiontab_g = new YAHOO.util.CustomEvent("Showcollectiontab_g",this);
	this.Showcollectiontab_d = new YAHOO.util.CustomEvent("Showcollectiontab_d",this);
	this.Showcollectiontab_v = new YAHOO.util.CustomEvent("Showcollectiontab_v",this);
	this.showcollectiontab_vReturn = new YAHOO.util.CustomEvent("showcollectiontab_vReturn",this);

	this.dropSlide= new YAHOO.util.CustomEvent("dropSlide",this);
	this.dropSlideReturn = new YAHOO.util.CustomEvent("dropSlideReturn",this);
	this.editSlide= new YAHOO.util.CustomEvent("editSlide",this);
	this.editSlideReturn= new YAHOO.util.CustomEvent("editSlideReturn",this);
	this.cancelSlide= new YAHOO.util.CustomEvent("cancelSlide",this);
	this.saveSlide= new YAHOO.util.CustomEvent("saveSlide",this);
	this.saveSlideReturn = new YAHOO.util.CustomEvent("saveSlideReturn",this);
	this.duplSlide= new YAHOO.util.CustomEvent("duplSlide",this);
	this.duplSlideReturn= new YAHOO.util.CustomEvent("duplSlideReturn",this);
	this.duplCol= new YAHOO.util.CustomEvent("duplCol",this);
	this.duplColReturn= new YAHOO.util.CustomEvent("duplColReturn",this);

	this.authError = "no auth processed";
	this.authToken = "";
	this.resort = Array();
	this.resort['Node']=0;
	this.resort['Parent']=0;
	this.hiddenId=Array();
	this.CurrentCG = 0;
}

Application.prototype.onAppReset = function (fct, result, me) {
	me.name="vC2";
		hidemods();
		var qs = document.URL.split("?");
		if (qs.length > 1) {
			if (qs[1].split("#")[0] == 'mod') {
				me.authRequired = true;
			} else {
				var qs2=qs[1].split("&");
				var qs3=new Array();
				for (i = 0; i <qs2.length; i++) {
					qs3[i]=qs2[i].split("=");
				}
				for (i = 0; i < qs3.length; i++) {
//					if (qs3[i][0]=="tv") {
//						this.tvurl = qs3[i][1];
//					}
		
					if (qs3[i][0]=="id" || qs3[i][0]=="c" || qs3[i][0]=="c_id" || qs3[i][0]=="co_id" || qs3[i][0]=="collection") {
						qs3[i][1]= qs3[i][1].replace(/#/,"");
						if (!isNaN(qs3[i][1]) && parseInt(qs3[i][1]) > 0) {
							me.directjumpcollection=qs3[i][1];
							//break;
						}
					}
		
					if (qs3[i][0]=="id" || qs3[i][0]=="c" || qs3[i][0]=="c_id" || qs3[i][0]=="co_id" || qs3[i][0]=="collection") {
						qs3[i][1]= qs3[i][1].replace(/#/,"");
						if (!isNaN(qs3[i][1]) && parseInt(qs3[i][1]) > 0) {
							me.directjumpcollection=qs3[i][1];
							$('cv_search').href=qs[0];
							$('cv_search').id="cv_search1";
							Behaviour.apply();
							//break;
						}
					}
				}
			}
		}
	if (me.authRequired == true) {
		me.authToken="";
		me.appShowLogon.fire(me);
	} else {
		me.authError="";
		me.appStartWork.fire(me);	
	}
};

Application.prototype.onSendLogon = function (fct, result, app) {
	setToken(app,"auth","u:" + $('username').value + ",p:" + $('password').value);
	//app.auth = "u:" + $('username').value + ",p:" + $('password').value;
	var pl = new SOAPClientParameters();
	SOAPClient.invoke(app.wspath,'logon',pl,true, 
		 function (SoapResultStr,resultXML,app) {
 		app.appLogonReturn.fire(SoapResultStr,app);
	},app
	);
};

Application.prototype.onAuthError = function (fct, result, me) {
	DeleteChildren($('errorbox'));
	if (me.authError != "") {
		me.authToken = "";
		$('errorbox').innerHTML = me.authError + "<br/>" + result;
		//$('errorbox').innerHTML = $('errorbox').innerHTML + "<br/><a class=\"logonbutton\">try again</a>";
		me.appShowLogon.fire();
	} else {
		if  ( result != "") {
			$('errorbox').innerHTML = me.authError + "<br/>" + result;
		}
	}
}

Application.prototype.onLogonReturn = function (fct,ResultXML,me) {
	if (me.authError == false) {
		showmods();
		me.appStartWork.fire();
		$('errorboxlogon').innerHTML = "";
		$('errorboxlogon').className="hidden";
	} else {
		me.appAuthError.fire();
	}
}

Application.prototype.ongetAllCGs = function (fct, result, app) {
	var pl = new SOAPClientParameters();
		pl.add("includeempty", 1);
	SOAPClient.invoke(app.wspath,'cg_getall',pl,true, 
		 function (SoapResultStr,resultXML,app) {
 		app.AllCGsReturn.fire(SoapResultStr,app);
	},app
	);
}

Application.prototype.onAllCGsReturn = function (fct, resultXML, me) {
if (me.authError =="") {
if (me.authRequired) {
me.hiddenId=Array();
}
var obj = parseJSON(resultXML[0]);
var res = drawCGs(obj,me);

DeleteChildren($('cgtreelist'));
$('cgtreelist').innerHTML = "<div id=\"cgList\">" + res.output + "<br/></div>";
// CGTree.drawMenu();
// CGTree.writeOutput();
// CGTree.resetBranches();

	me.execHide();
	Behaviour.apply("onAllCGSReturn");
	if (me.authRequired) {
		Sortable.create("cgList",{tag:'div',"onChange":startresort,"onUpdate":endresort})
	}
}
}

Application.prototype.onShowLogon = function (fct, result, me) {
	// window.alert(me.name);
		//$('logonbutton').innerHTML = "go to moderator mode";
}

Application.prototype.onStartWork = function (fct,result,me) {
me.appGetLookupData.fire(me);
//DeleteChildren($('logonbutton'));
if (me.authRequired == true) {
	document.title="vColl-Mod";
	//$('logonbutton').innerHTML = "go to user mode";
	//me.ShowCollections.fire(me);
	//$('searchcollection').value="";
	//me.SearchCollections.fire($("searchcollection").value.toString());
	me.cc_slides_maxrows = 5000;
	me.cc_slides_startfrom=1;
	if (me.directjumpcollection <= 0)  {
		$('startfrom').value=1;
		me.startSearch.fire($('form_startsearch').elements,me)
	} else {
		me.GetCollectionView.fire(me.directjumpcollection,me)
	}
} else {
	document.title="vCollections";
	me.cc_slides_maxrows = 20;
	me.cc_slides_startfrom=1;
	$('logonbutton').innerHTML = "go to moderator mode";
	if (me.directjumpcollection <= 0) {
		me.startSearch.fire($('form_startsearch').elements,me);
	} else {
		me.GetCollectionView.fire(me.directjumpcollection,me)
	}
}
}

Application.prototype.onAppGetLookupData = function (fct,result,app) {
	var pl = new SOAPClientParameters();
	SOAPClient.invoke(app.wspath,'getLookupData',pl,true, 
		 function (SoapResultStr,resultXML,app) {
 		app.appGetLookupDataReturn.fire(SoapResultStr,app);
	},app
	);
};

Application.prototype.onAppGetLookupDataReturn = function (fct,result,me) {
	fillLookupData(result,me);
};

Application.prototype.onDeleteCG = function (fct,result,me) {
	deleteCG(result,me);
	//me.getAllCGs.fire(me);
}

Application.prototype.onDeleteCGReturn = function (fct,result,me) {
if (me.authError =="") {
	//deleteCG(result);
	//window.alert(result);
	if (me.authError =="") {
		me.getAllCGs.fire(me);
	}
}
}
Application.prototype.onshowAddCG = function (fct,result,me) {

var nde = showAddForm ("add", "0", "", "", result,"0");

$($('aCG_' + result).parentNode.parentNode.id).appendChild(nde);
Behaviour.apply("onShowAddCG");

$('addCG0_name').focus();
};

Application.prototype.onAddCG = function (fct,params,app) {
	var pl = new SOAPClientParameters();
//window.alert(params[0][1]);
	pl.add("name", params[0][0].toString());
	pl.add("parent", parseInt(params[0][1]));
	pl.add("comment", params[0][2].toString());
	pl.add("so", params[0][3].toString());
	SOAPClient.invoke(app.wspath,'cg_create',pl,true, 
		 function (SoapResultStr,resultXML,app) {
 		app.AddCGReturn.fire(SoapResultStr,app);
	},app
	);
};

Application.prototype.onCancelAddCG = function (fct,params,me) {
	//me.getAllCGs.fire(me);
var el = $('addCG0');
if (typeof(el) != 'undefined') {
	el.parentNode.removeChild(el);	
}
};

Application.prototype.onAddCGReturn = function (fct,result,me) {
//var el = $('addCG0');
//el.parentNode.removeChild(el);
//window.alert(result);
if (me.authError =="") {
me.getAllCGs.fire(me);
}
};
//-------------------------------------------------------------------

Application.prototype.onshowEditCG = function (fct,result,me) {
me.CancelAddCG.fire();
me.CancelEditCG.fire();
var so = $('eCG_' + result).parentNode.parentNode.getElementsByTagName("a")[0].id.split("_")[2];
var name = $('eCG_' + result).parentNode.parentNode.getElementsByTagName("span")[0].firstChild.nodeValue;
var desc = $('lCG_' + result+'_'+so).title;

var nde = showAddForm ("edit", "0", name, desc,null, so);
//var nde = showAddForm("edit","0", result[0],result[1],result[3]);

$($('eCG_' + result).parentNode.parentNode.id).appendChild(nde);
Behaviour.apply("onshoweditcg");

$('editCG0_name').focus();
};

Application.prototype.onEditCG = function (fct,params,app) {
	var pl = new SOAPClientParameters();
//window.alert($('eCG_' + params).parentNode.getElementsByTagName("span")[0].firstChild.nodeValue);
	pl.add("id", parseInt(params[0][2]));
	pl.add("name", params[0][0].toString());
	pl.add("desc", params[0][1].toString());
	pl.add("so", params[0][3].toString());
			
	SOAPClient.invoke(app.wspath,'cg_save',pl,true, 
		 function (SoapResultStr,resultXML,app) {
 		app.EditCGReturn.fire(SoapResultStr,app);
	},app
	);
};

Application.prototype.onCancelEditCG = function (fct,params,me) {
	//me.getAllCGs.fire(me);
var el = $('editCG0');
if (typeof(el) != 'undefined') {
	el.parentNode.removeChild(el);	
}
};

Application.prototype.onEditCGReturn = function (fct,result,me) {
//var el = $('addCG0');
//el.parentNode.removeChild(el);
//window.alert(result);
if (me.authError =="") {
me.getAllCGs.fire(me);
}
};

Application.prototype.onResortCGsReturn = function (fct,result,me) {
//var el = $('addCG0');
//el.parentNode.removeChild(el);
//window.alert(result);
if (me.authError =="") {
me.getAllCGs.fire(me);
}
};

Application.prototype.onResortCGs = function (fct,params,app) {
	var pl = new SOAPClientParameters();
//window.alert(params[0][1]);
	pl.add("id", parseInt(app.resort["Node"]));
	pl.add("newparent", parseInt(app.resort["Parent"]));
		
	SOAPClient.invoke(app.wspath,'cg_move',pl,true, 
		 function (SoapResultStr,resultXML,app) {
 		app.ResortCGsReturn.fire(SoapResultStr,app);
	},app
	);
};


//-------------------------------------------------------------------
Application.prototype.addHiddenId = function (id) {
    this.hiddenId[this.hiddenId.length]=id;
}

Application.prototype.deleteHiddenId = function (id) {
    this.hiddenId[this.hiddenId.length]=id;
}

Application.prototype.execHide = function () {
	for (var i = 0, len=this.hiddenId.length; i < len; i=i+1) {
		if (typeof($(this.hiddenId[i])) != 'undefined') {
			if ($(this.hiddenId[i]).className.search("hidden") < 0) {
				$(this.hiddenId[i]).className="hidden";
			}
		}
	}
	len = null;
}

Application.prototype.onForceLogon = function (fct,params,me) {
if (me.authRequired == false) {
	me.authRequired=true;
} else {
	me.authRequired=false;
}
me.appReset.fire();
}

Application.prototype.onGetCollections = function (fct,params,app) {
	var pl = new SOAPClientParameters();
	pl.add("cg_id", parseInt(params));
	app.CurrentCG = parseInt(params);
	SOAPClient.invoke(app.wspath,'c_get_g',pl,true, 
		 function (SoapResultStr,resultXML,app) {
 		app.getCollectionsReturn.fire(SoapResultStr,app);
	},app
	);	
}

Application.prototype.onGetCollectionsReturn = function (fct,params,me) {
if (me.authError =="") {
	var className = "cshow";

	if (me.authRequired == true) {
		className="cres";
	}
 		fillTable('gcollectionlist',params,className,me,'cm_');
 		Behaviour.apply("onGetCollectionsReturn");
}
}

Application.prototype.onSaveCollection = function (fct,params,app) {
	var pl = new SOAPClientParameters();
	params = params[0];

	if (params["co_id"].value == 'new') {
		pl.add("co_id", 0);
	} else {
	if (parseInt(params["co_id"].value.toString()=="NaN")) {
		pl.add("co_id", 0);
	} else {
		pl.add("co_id", parseInt(params["co_id"].value.toString()));
	}
	}
	var tgtext="";
	for (var tgind = 0;tgind <= $('topogroupselected').length-1;tgind++) {
		$('topogroupselected')[tgind].selected=true;
		tgtext+=$('topogroupselected')[tgind].text+"|";
	}
	pl.add("co_name", params["co_name"].value.toString());
	pl.add("co_epilog", params["co_epilog"].value.toString());
	pl.add("co_prolog", params["co_prolog"].value.toString());
	pl.add("co_docs", params["co_docs"].value.toString());	
	pl.add("co_description", params["co_description"].value.toString());
	pl.add("co_ct_id", parseInt(params["collectiontype"].value));
	pl.add("co_ctg_id", parseInt(params["targetgroup"].value));
	pl.add("co_tg_id", parseInt(params["topogroupselected"].value));
	pl.add("co_org_id", parseInt(params["organizer"].value));	
	pl.add("co_status", parseInt(params["co_status"].value));
	pl.add("CO_PUBDATE", params["co_pubdate"].value.toString());
	pl.add("co_date", params["co_date"].value).toString();	
	pl.add("co_place", params["co_place"].value).toString();
	pl.add("co_speaker", params["co_speaker"].value).toString();
	pl.add("co_prologcourse", params["co_prologcourse"].value.toString());
	pl.add("co_tg_text", tgtext);
	SOAPClient.invoke(app.wspath,'c_update',pl,true, 
		 function (SoapResultStr,resultXML,app) {
 		app.SaveCollectionReturn.fire(app,app,app);
	},app
	);
}

Application.prototype.onAddCollection = function (fct,params,app) {
	erase('c_editform1');
	app.currentcollection = 0;
	fillText('currentcollection1',"");
	$('co_id').value="new";
	$('co_cg_id').value= app.CurrentCG;
	if ($('co_cg_id').value=="") {
		$('co_cg_id').value = 0;
	}
}

Application.prototype.onSaveCollectionReturn = function (fct,params,me) {
	//me.SearchCollections.fire($("searchcollection").value.toString());
	if (me.authError =="") {
		me.startSearch.fire($('form_startsearch').elements,me);
	}
}

Application.prototype.onShowCollections = function (fct,params,me) {

}

Application.prototype.onSearchCollections = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	pl.add("c_text", params.toString());
	pl.add("startfrom", $('startfrom').value);
	pl.add("maxrows", $('maxrows').value);
	
	SOAPClient.invoke(me.wspath,'c_search',pl,true, 
		 function (SoapResultStr,resultXML,me) {
 		me.SearchCollectionsReturn.fire(SoapResultStr,me);
	},me
	);
}

Application.prototype.onSearchCollectionsReturn = function (fct, params, me) {
if (me.authError =="") {
	var className = "cshow";

	if (me.authRequired == true) {
		className="cres";
	}

	fillTable('collectionlist',params,className,me);
	Behaviour.apply("onSearchCollectionsReturn");
}
}

Application.prototype.onGetCollectionReturn = function (fct, params, me) {
if (me.authError =="") {
	fillCollection(params[0],me);
	
	if (fct =='GetCollectionvReturn') {
		me.Showcollectiontab_v.fire();
	} else {
		me.Showcollectiontab_d.fire();
	}
}
}

Application.prototype.onGetCollection = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	me.currentcollection = params[0].toString();
	pl.add("c_id", params[0].toString());
	pl.add("mode", me.cc_mode);
	
	SOAPClient.invoke(me.wspath,'c_get',pl,true, 
		 function (SoapResultStr,resultXML,me) {
 		me.GetCollectionReturn.fire(SoapResultStr,me);
	},me
	);
}

Application.prototype.onGetCollectionv = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	me.currentcollection = params[0].toString();
	pl.add("c_id", params[0].toString());
	pl.add("mode", me.cc_mode);
	SOAPClient.invoke(me.wspath,'c_get',pl,true, 
		 function (SoapResultStr,resultXML,me) {
 		me.GetCollectionvReturn.fire(SoapResultStr,me);
	},me
	);
}


Application.prototype.onGetCollectionViewReturn = function (fct, params, me) {
if (me.authError =="") {
	if (parseJSON(params[0])['co_id'] > 0) {
		me.currentcollection = parseJSON(params[0])['co_id'];
		me.cc_mode = parseJSON(params[0])['co_mode'];
		fillCollection(params[0],me);
		me.getCollectionvSlidesTable.fire(params,me);
	} else {
		me.authError="";
		me.appAuthError.fire("no such collection, sorry!");
	}
}
}
Application.prototype.onGetCollectionvSlidesTable = function (fct, params, me) {
	var pl = new SOAPClientParameters();
//	window.alert(me.currentcollection);
	pl.add("co_id", me.currentcollection.toString());
	pl.add("tv", me.cc_mode);
	pl.add("startfrom", me.cc_slides_startfrom);
	pl.add("maxrows", me.cc_slides_maxrows);
	
	SOAPClient.invoke(me.wspath,'c_getslides',pl,true, 
		 function (SoapResultStr,resultXML,me) {
			me.getCollectionvSlidesTableReturn.fire(SoapResultStr,me)
	},me
	);
}

Application.prototype.onGetCollectionvSlidesTableReturn = function (fct, SoapResultStr, me) {
if (me.authError =="") {
		fillvSlideTable2('vcolslides_v',SoapResultStr[0],me);
 		Behaviour.apply("onGetCollectionvSlidesTableReturn");
}
}

Application.prototype.onGetCollectionView = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	me.currentcollection = params[0].toString();
	pl.add("c_id", params[0].toString());
	pl.add("mode", me.cc_mode);
	SOAPClient.invoke(me.wspath,'c_get',pl,true, 
		 function (SoapResultStr,resultXML,me) {
 		me.GetCollectionViewReturn.fire(SoapResultStr,me);
	},me
	);
}

Application.prototype.onDisplayCollection = function (fct, params, me) {

}


Application.prototype.onDisplayCollectionReturn = function (fct, params, me) {

	//window.alert(params);
}

Application.prototype.onShowcollectiontab_g = function (fct, params, me) {
//cgtreelist_e
if (me.authError =="") {
	var pl = new SOAPClientParameters();
		pl.add("includeempty", 1);
		pl.add("c_id", me.currentcollection.toString());
	SOAPClient.invoke(me.wspath,'cg_getall_for_c',pl,true, 
		 function (SoapResultStr,resultXML,me) {
			 var obj = parseJSON(SoapResultStr);
		     var res = drawCGs(obj,me);
		     DeleteChildren($('cgtreelist_e'));
		     $('cgtreelist_e').innerHTML=res.output;
		     Behaviour.apply("onShowcollectiontab_g");
	},me);
}
}

Application.prototype.onShowcollectiontab_v = function (fct, params, app) {
if (app.authError =="") {
	clearTable('vcolslides');
	var pl = new SOAPClientParameters();
	pl.add("co_id", app.currentcollection);
	pl.add("tv", 0);
	pl.add("startfrom", app.cc_slides_startfrom);
	pl.add("maxrows", app.cc_slides_maxrows);
			
	SOAPClient.invoke(app.wspath,'c_getslides',pl,true, 
		 function (SoapResultStr,resultXML,app) {
 		app.showcollectiontab_vReturn.fire(SoapResultStr,app)
 		Behaviour.apply("onShowcollectiontab_v");
	},app
	);
}
}

Application.prototype.onShowcollectiontab_vReturn = function (fct, params, app) {
if (app.authError =="") {
	fillvSlideTable2('vcolslides',params[0],app);
}
}

Application.prototype.onShowcollectiontab_d = function (fct, params, me) {

}

Application.prototype.onAddCGtoCol = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	params = params.toString().split(",");
	pl.add("c_id", params[2]);
	pl.add("cg_id", params[1]);
	pl.add("comment", "");
	SOAPClient.invoke(me.wspath,'c_AddToCG',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.AddCGtoColReturn.fire(SoapResultStr,me);
	},me
	);
}
Application.prototype.onAddCGtoColReturn = function (fct, params, me) {
	if (me.authError =="") {
params = params[0];
//window.alert(typeof($("eCGC_" + params)));
if (typeof($("eCGC_" + params)) != 'undefined') {
	$("eCGC_" + params).checked=true;
}
}
}

Application.prototype.onRemoveCGfromCol = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	params = params.toString().split(",");
	pl.add("c_id", params[2]);
	pl.add("cg_id", params[1]);
	SOAPClient.invoke(me.wspath,'dct',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.RemoveCGFromColReturn.fire(SoapResultStr,me);
	},me
	);
}
Application.prototype.onRemoveCGFromColReturn = function (fct, params, me) {
params = params[0];
if (typeof($("eCGC_" + params)) != 'undefined') {
	$("eCGC_" + params).checked=false;
}
}


Application.prototype.onDeleteCollection = function (fct, params, me) {
	deletecollection(params,me);
}

Application.prototype.onDeleteCollectionReturn = function (fct, params, me) {
	if (me.authError =="") {
	if (params[0] != 'true') {
		window.alert("collection could not be deleted!");
	}
	me.startSearch.fire($('form_startsearch').elements,me);
	}
}

Application.prototype.onStartRecentSearch = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	pl.add("number", 5);
	me.showingrecent = true;
	$('mostrecenttext').innerHTML="most recent vCollections, ";
	SOAPClient.invoke(me.wspath,'getRecentCollections',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.startSearchReturn.fire(SoapResultStr,me);
	},me
	);
}

Application.prototype.onStartSearch = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	//window.alert($('searchcollection').value.toString());
	var d = $('searchcollection_text');
	pl.add("c_text", d.value.toString());
	pl.add("co_ct", $('search_collectiontype').value);
	pl.add("co_ctg", $('search_targetgroup').value);
	pl.add("co_org", $('search_organizer').value);
	pl.add("co_tg", $('search_topogroup').value);	
	pl.add("startfrom", $('startfrom').value);
	pl.add("maxrows", $('maxrows').value);
	SOAPClient.invoke(me.wspath,'c_search2',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.startSearchReturn.fire(SoapResultStr,me);
		 	DeleteChildren($('mostrecenttext'));
		me.showingrecent = false; 
	},me
	);
}

Application.prototype.onStartSearchReturn = function (fct, params, me) {
//window.alert(params);
if (me.authError =="") {
	var className = "cshow";

	if (me.authRequired == true) {
		className="cres";
	}

	fillTable('gcollectionlist1',params,className,me,'co_');
	Behaviour.apply("onStartSearchReturn");
	me.showSearchResult.fire(me);
}
}

Application.prototype.onShowSearchForm = function (fct, params, me) {

}

Application.prototype.onGetCourseinfo = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	pl.add("co_id", params[1].toString().split("_")[1]);
	pl.add("sld_id", params[1].toString().split("_")[2]);
	pl.add("mode", me.cc_mode);
	//window.alert(params[1].toString().split("_")[1]);
	SOAPClient.invoke(me.wspath,'cs_getCourseinfo',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.getCourseinfoReturn.fire(SoapResultStr,params[0], params[1],params[2],me);
	},me
	);
}

Application.prototype.onGetCourseinfoReturn = function (fct, params, me) {
	//DeleteChildren($(params[1]));
	//$(params[1]).innerHTML=params[0]+'<a href="##" id="' + params[2] + '" class="diaglink">Show Diagnosis</a>';
$('vSlidespreviewlink_'+me.currentcollection + '_'+params[3]).href=$('vSlidespreviewlink_'+me.currentcollection + '_'+params[3]).href.replace(/&tv=1/,"&tv=0");
	Behaviour.apply("onGetCourseInfoReturn");
}

Application.prototype.onGetDiagnosis = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	pl.add("co_id", params[1].toString().split("_")[1]);
	pl.add("sld_id", params[1].toString().split("_")[2]);
	pl.add("mode", me.cc_mode);
	//window.alert(params[1].toString().split("_")[1]);
	SOAPClient.invoke(me.wspath,'cs_getDiagnosis',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.getDiagnosisReturn.fire(SoapResultStr,params[0], params[1],params[2],me);
	},me
	);	
}

Application.prototype.onGetDiagnosisReturn = function (fct, params, me) {
	DeleteChildren($(params[1]));
	$(params[1]).innerHTML=params[0]+'<a href="../vSlides/?id='+ params[3]+'" id="' + params[2] + '" class="infobutton" title="more info" target="vSlides"/>';
	$('vSlidespreviewlink_'+me.currentcollection + '_'+params[3]).href=$('vSlidespreviewlink_'+me.currentcollection + '_'+params[3]).href.replace(/&tv=1/,"&tv=0");
	Behaviour.apply("onGetDiagnosisReturn");
}


//--------------------------------------------
Application.prototype.onGetAllcourseinfo = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	pl.add("co_id", me.currentcollection);
	pl.add("startfrom", me.cc_slides_startfrom);	
	pl.add("maxrows", me.cc_slides_maxrows);
	pl.add("mode", me.cc_mode);
	SOAPClient.invoke(me.wspath,'cs_getAllcourseinfo',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.getAllcourseinfoReturn.fire(SoapResultStr,me);
	},me
	);
}

Application.prototype.onGetAllcourseinfoReturn = function (fct, params, me) {
	var dataarray=parseJSON(params[0]);	
	for ( var i=0,len = dataarray.length; i < len;i=i+1) {
		if (typeof(dataarray[i][1])!='undefined' && typeof($('vSlidediagcell_' + dataarray[i][1])) !='undefined') {
			if ($('vSlidediagcell_' + dataarray[i][1])) {
				DeleteChildren($('vSlidediagcell_' + dataarray[i][1]));
				$('vSlidediagcell_' + dataarray[i][1]).innerHTML=dataarray[i][0]+
				'<a href="../vSlides/?tv=1&id='+ dataarray[i][2] +'" id="' + 'vSlidedaignlink'+i+'_'+me.currentcollection +'_' + dataarray[i][1] + '" class="infobutton" title="more info" target="vSlides"/>'+
				'<a href="##" id="' + 'vSlidedaignlink'+i+'_'+me.currentcollection +'_' + dataarray[i][1] + '" class="diaglink">Show Diagnosis</a>';
				$('vSlidespreviewlink_'+me.currentcollection + '_'+dataarray[i][2]).href=$('vSlidespreviewlink_'+me.currentcollection + '_'+dataarray[i][2]).href.replace(/&tv=0/,"&tv=1");
			}			
		}
	}
	len = null;
	//$('alldiag_linkshow').parentNode.className="alldiag";
	//$('alldiag_linkhide').parentNode.className="alldiag hidden";
	Behaviour.apply("onGetAllCourseinfoReturn");
}

Application.prototype.onGetAlldiagnoses = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	pl.add("co_id", me.currentcollection);
	pl.add("startfrom", me.cc_slides_startfrom);
	pl.add("maxrows", me.cc_slides_maxrows);
	pl.add("mode", me.cc_mode);
	SOAPClient.invoke(me.wspath,'cs_getAllDiagnoses',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.getAlldiagnosesReturn.fire(SoapResultStr,me);
	},me
	);	
}

Application.prototype.onGetAlldiagnosesReturn = function (fct, params, me) {
	var dataarray=parseJSON(params[0]);	
	for ( var i=0, len =dataarray.length; i < len;i++) {
		
		if (typeof(dataarray[i][1])!='undefined' && typeof($('vSlidediagcell_' + dataarray[i][1])) !='undefined') {
		if($('vSlidediagcell_' + dataarray[i][1])) {	
			DeleteChildren($('vSlidediagcell_' + dataarray[i][1]));
			$('vSlidediagcell_' + dataarray[i][1]).innerHTML=dataarray[i][0]+'<a href="../vSlides/?id='+ dataarray[i][2] +'" id="' + 'vSlidedaignlink'+i+'_'+me.currentcollection +'_' + dataarray[i][1] + '" class="infobutton" title="more info" target="vSlides"/>';
			$('vSlidespreviewlink_'+me.currentcollection + '_'+dataarray[i][2]).href=$('vSlidespreviewlink_'+me.currentcollection + '_'+dataarray[i][2]).href.replace(/&tv=1/,"&tv=0");
		}
		}
	}
	len = null;
	//$('alldiag_linkshow').parentNode.className="alldiag hidden";
	//$('alldiag_linkhide').parentNode.className="alldiag";


	Behaviour.apply("onGetAlldiagnosesReturn");
}

Application.prototype.onDropSlide = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	pl.add("co_id", me.currentcollection);
	pl.add("slides", params[0]);
	SOAPClient.invoke(me.wspath,'c_deleteSlides',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.dropSlideReturn.fire(SoapResultStr,me);
	},me
	);	
}

Application.prototype.onDuplSlide = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	pl.add("co_id", me.currentcollection);
	pl.add("slides", params[0].toString().split("_")[2]);
	SOAPClient.invoke(me.wspath,'c_duplSlide',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.duplSlideReturn.fire(SoapResultStr,me);
	},me
	);	
}

Application.prototype.onDuplSlideReturn = function (fct, params, me) {
	if (me.authError =="") {
		me.Showcollectiontab_v.fire(me);
	}
}

Application.prototype.onDuplCol = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	pl.add("co_id", params[0]);
	SOAPClient.invoke(me.wspath,'c_dupl',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.duplColReturn.fire(SoapResultStr,me);
	},me
	);
}

Application.prototype.onDuplColReturn = function (fct, params, me) {
	if (me.authError =="") {
		me.startSearch.fire(me);
	}
}


Application.prototype.onDropSlideReturn = function (fct, params, me) {
	if (me.authError =="") {
		me.Showcollectiontab_v.fire(me);
	}
}

Application.prototype.onSaveSlide = function (fct, params, me) {
	var pl = new SOAPClientParameters();
	pl.add("co_id", me.currentcollection);
	pl.add("sld_id", $('cs_sld_id').value);
	pl.add("cs_desc", $('cs_desc').value);
	pl.add("cs_docs", $('cs_docs').value);
	pl.add("cs_url", $('cs_url').value);
	pl.add("cs_so", $('cs_so').value);
	pl.add("cs_course", $('cs_course').value);
	pl.add("cs_title", $('cs_title').value);
	pl.add("cs_id", $('cs_id').value);
	SOAPClient.invoke(me.wspath,'c_updateslide',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.saveSlideReturn.fire(SoapResultStr,me);
	},me
	);
}

Application.prototype.onEditCollection = function (fct, params, me) {
	return true;
}

Application.prototype.onEditSlide = function (fct, params, me) {
	
	if (!$('cs_sldedit')) {
		v.startSandglass();
		DeleteChildren($('vSlidediagcell_'+params[0].split("_")[2]));
		$('vSlidediagcell_'+params[0].split("_")[2]).parentNode.className="vSlideedit";
	$('vSlidediagcell_'+params[0].split("_")[2]).innerHTML = '<div id="cs_sldedit"><form><fieldset><input type="hidden" id="cs_id"/>' +
			'<ul><li><label for="cs_sld_id">vSlide-ID</label><input type="text" readonly="readonly" id="cs_sld_id" value=""/></li>' +
			'<li><label for="cs_title">Title</label><input type="text" id="cs_title" class="sldedit"/></li>' +
			'<li><label for="cs_desc">Public descr</label><textarea id="cs_desc" class="sldedit_textarea"></textarea></li>' +
			'<li><label for="cs_course">Course descr</label><textarea id="cs_course" class="sldedit_textarea"></textarea></li>' +			
			'<li><label for="cs_docs">Documents</label><textarea id="cs_docs" class="sldedit_textarea"></textarea></li>' +
			'<li><label for="cs_url">URL</label><input type="text" id="cs_url" class="sldedit"/></li>' +
			'<li><label for="cs_so">Sortorder</label><input type="text" id="cs_so" class="sldedit"/></li>' +
			'<li><input type="button" id="csedit_save" value="save changes"/>&nbsp;&nbsp;<input type="button" id="cs_canceledit" value="Cancel"/></li>' +
			'</ul></fieldset></form></div>';
			me.editingcolslide=true;
			var aelem=document.getElementsByTagName("a");
			for (var elem in aelem) {
				if (aelem[elem].className=="dropslide" || aelem[elem].className=="editslide" || aelem[elem].className=="duplslide" ) {
					aelem[elem].className=aelem[elem].className+"_notactive";
				}
			}
			DeleteChildren($('csactiontd_'+me.currentcollection+'_'+params[0].split("_")[2]));
			//$('csactiontd_'+me.currentcollection+'_'+params[0].split("_")[2]).innerHTML="";
			'<a href="#" id="cs_canceledit">cancel</a>';
			Behaviour.apply("onEditSlide");
	var pl = new SOAPClientParameters();
	pl.add("co_id", me.currentcollection);
	pl.add("sld_id", params[0].split("_")[2]);
	pl.add("mode", me.cc_mode);
	SOAPClient.invoke(me.wspath,'c_getslidedata',pl,true, 
		 function (SoapResultStr,resultXML,me) {
		 me.editSlideReturn.fire(SoapResultStr,me);
	},me
	);
	}	
}

Application.prototype.onEditSlideReturn = function (fct, params, me) {
/*
			var aelem=document.getElementsByTagName("a");
			for (var elem in aelem) {
				if (aelem[elem].className=="dropslide_notactive" || aelem[elem].className=="editslide_notactive" || aelem[elem].className=="duplslide_notactive" ) {
					aelem[elem].className=aelem[elem].className.split("_")[0]
				}
			}
*/
if (me.authError =="") {
me.editingcolslide = false;
	params=parseJSON(params[0]);
		for (var el in params) {
			if ($(el)) {
				fillText(el,"");
				fillText(el,params[el]);
			}
		}
}
}
Application.prototype.onSaveSlideReturn = function (fct, params, me) {
	if (me.authError =="") {
		me.Showcollectiontab_v.fire(me);
	}
}

Application.prototype.onCancelSlide = function (fct, params, me) {
	me.Showcollectiontab_v.fire(me);
	DeleteChildren($('cs_sldedit'));
	if (typeof ($('cs_sldedit')) != 'undefined' && typeof ($('cs_sldedit')).innerHTML !='undefined') {
		$('cs_sldedit').innerHTML="";
		$('cs_sldedit').id="";
	}
			var aelem=document.getElementsByTagName("a");
			for (var elem in aelem) {
				if (aelem[elem].className=="dropslide_notactive" || aelem[elem].className=="editslide_notactive" || aelem[elem].className=="duplslide_notactive" ) {
					aelem[elem].className=aelem[elem].className.split("_")[0]
				}
			}
me.editingcolslide = false;
Behaviour.apply();
}

Application.prototype.onForceLogoff = function (fct, params, me) {
me.authToken = "";
me.authRequired = false;
me.currentcollection = 0;
window.location.href="index.html";
}

