var allowed_attachments = 1;
function Resources(){
	this.preloader = new PreLoader();
	this.handleFailure=function(o){alert("failed to retrieve data!");}
	////////////////////////////////
	this.getSubCat = function(id){
		resourceURL = GLOBAL_URI+"resources/getSubCat/"+id+"?ajaxcall=true";
		handleSuccess = function( o ){getElementId("subcat").innerHTML=o.responseText}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET", resourceURL, callback);
	}
	this.add = function(){
		//remove the control so it can be re-initialized properly
		tinyMCE.execCommand('mceRemoveControl', true, 'description');
		resourceURL = GLOBAL_URI+"resources/add/"+"?ajaxcall=true";
		formObject=getElementId("listresources");
		var pre = this.preloader.getPreLoader();
		handleSuccess = function( o ){
			pre.hide();
			if(parseInt(o.responseText)){
				alert("Your resource has been uploaded!");
				location.href = GLOBAL_URI+"resources/resources/";
			} else {
				getElementId("countrydivcontainer").innerHTML=o.responseText;
				tinyMCE.execCommand('mceAddControl', true, 'description');			
			}
		}
		callback={upload:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.setForm(formObject,true);
		allowed_attachments = 1;
		pre.show();		
		YAHOO.util.Connect.asyncRequest("POST",resourceURL,callback)
	}
	this.updateRes = function(){
		//remove the control so it can be re-initialized properly
		tinyMCE.execCommand('mceRemoveControl', true, 'description');
		resourceURL = GLOBAL_URI+"resources/updateResource/"+"?ajaxcall=true";
		formObject=getElementId("listresources");
		var pre = this.preloader.getPreLoader();
		handleSuccess = function( o ){
			if(parseInt(o.responseText)){
				alert("Your resource has been updated!");
				location.href = GLOBAL_URI+"resources/resources/";
			} else {
				pre.hide();getElementId("countrydivcontainer").innerHTML=o.responseText;
				tinyMCE.execCommand('mceAddControl', true, 'description');			
			}
			//pre.hide();getElementId("countrydivcontainer").innerHTML=o.responseText;
			//tinyMCE.execCommand('mceAddControl', true, 'description');
		}
		callback={upload:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.setForm(formObject,true);
		pre.show();
		allowed_attachments = 1;
		YAHOO.util.Connect.asyncRequest("POST",resourceURL,callback)
	}
	this.subScribe=function(id,mode){
		resourceURL = GLOBAL_URI+"resources/subscription/"+id+","+mode+"?ajaxcall=true";
		handleSuccess = function( o ){alert(o.responseText);
		}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET",resourceURL,callback)
	}
	this.checkAvailibility = function(email){
			resourceURL = GLOBAL_URI+"Registration/checkAvailability/"+email+"?ajaxcall=true";
			handleSuccess = function( o ){alert(o.responseText);}
		  	callback={success:handleSuccess,failure:this.handleFailure}
			YAHOO.util.Connect.asyncRequest("POST", resourceURL, callback);
	}
	this.viewRequesterProfile = function(id){
		request.show();
		resourceURL = GLOBAL_URI+"user/viewRquester/"+id+"?ajaxcall=true";
		handleSuccess = function( o ){getElementId("fDiv").innerHTML=o.responseText;}
		callback = {success:handleSuccess,failure:this.handleFailure	}
		YAHOO.util.Connect.asyncRequest("GET", resourceURL, callback);
	}
	this.viewMember = function(id){
		member.show();
		resourceURL = GLOBAL_URI+"user/member/"+id+"?ajaxcall=true";
		handleSuccess = function( o ){getElementId("fw").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET", resourceURL, callback);
	}
	this.invite = function(){
		friend.show();
	}
	this.sendInvitation = function(id){
		resourceURL = GLOBAL_URI+"user/invitation/"+id+"?ajaxcall=true";
		x = getElementId("invitationForm");
		handleSuccess = function( o ){getElementId("fv").innerHTML+=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.setForm(x);
		YAHOO.util.Connect.asyncRequest("POST", resourceURL, callback);
	}
	this.acceptReject = function(id,type){
		handleSuccess = function( o ){
			request.hide();
			location.href=GLOBAL_URI +"user/requests/";
			//YAHOO.util.Connect.asyncRequest("POST", url +"user/requests/?ajaxcall=true", callback);
		   }
		callback={success:handleSuccess,failure:this.handleFailure}
		if(type.value=="Accept"){
			YAHOO.util.Connect.asyncRequest("POST", GLOBAL_URI +"user/accept/"+id+"?ajaxcall=true", callback);
		}
		else if(type.value=="Reject"){
			YAHOO.util.Connect.asyncRequest("POST", GLOBAL_URI +"user/reject/"+id+"?ajaxcall=true", callback);
		}
	}
	this.updateUserProfile = function(){
			resourceURL = GLOBAL_URI+"user/updateUserData/"+"?ajaxcall=true";
			x = getElementId("updateUser");
			handleSuccess = function( o ){alert("Profile Updated Successfully");}
			callback={success:handleSuccess,failure:this.handleFailure}
			YAHOO.util.Connect.setForm(x);
			YAHOO.util.Connect.asyncRequest("POST",resourceURL, callback);
	}
	this.updateUserPassword = function(){
			resourceURL = GLOBAL_URI+"user/changeUserPass/?ajaxcall=true";
			x = getElementId("changePass");
			handleSuccess = function( o ){alert("Password Updated Successfully");}
		    callback={success:handleSuccess,failure:this.handleFailure}
			YAHOO.util.Connect.setForm(x);
			YAHOO.util.Connect.asyncRequest("POST", resourceURL, callback);
	}
	this.updateUserTechSettings = function(){
			resourceURL = GLOBAL_URI+"user/updateTechSettings/"+"?ajaxcall=true";
			x = getElementId("techSettings");
			handleSuccess = function( o ){alert("Updated Successfully");
			 // location.href=url+"user/userSettings/";
		   }
		   	callback={success:handleSuccess,failure:this.handleFailure}
			YAHOO.util.Connect.setForm(x);
			YAHOO.util.Connect.asyncRequest("POST", resourceURL, callback);
	}
		////////////////////////////////
	this.resources=function(){
		resourceURL = GLOBAL_URI+"resources/resources/"+"?ajaxcall=true";
		formObject=getElementId("listresources");
		formObject.action = GLOBAL_URI+"resources/resources/";
		handleSuccess=function(o){getElementId("listResDiv").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("POST",resourceURL,callback)
	}
	this.resourceRate=function(ratingvalue,resourceid,mode){
		resourceURL = GLOBAL_URI+"resources/resourceRating/"+ratingvalue+","+resourceid+"?ajaxcall=true";
		handleSuccess=function(o){alert(o.responseText);
			if(mode == "list"){location.href=GLOBAL_URI+"resources/resources/"}
			else {res=new Resources();res.get_res_detail(resourceid);} 
		}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET",resourceURL,callback)		
	}
	this.showUploadResource = function(){
		showLoading("cLoad");
		resourceURL = GLOBAL_URI+"resources/post/?ajaxcall=true";
		handleSuccess = function( o ){hideLoading("cLoad");getElementId("postNewResource").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET", resourceURL, callback);
	}
	this.getCommentForm = function(resourceid){
		getElementId("resCommentPanel").style.display = 'block';
		resCommentPanel.show();
		showLoading("cLoad");
		resourceURL = GLOBAL_URI+"resources/getCommentForm/"+resourceid+"?ajaxcall=true";
		handleSuccess = function( o ){hideLoading("cLoad");getElementId("resCommentDiv").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET", resourceURL, callback);
	}
	this.postComment=function(resourceid){
		resourceURL = GLOBAL_URI+"resources/addComment/"+"?ajaxcall=true";
		formObject=getElementId("commentform");
		handleSuccess=function(o){
		 if(o.responseText == "success"){
		 	alert("Comment Successfully Posted");resCommentPanel.hide();
		 	res=new Resources();res.get_res_detail(resourceid);
		 } else {
		 	getElementId("resCommentDiv").innerHTML=o.responseText; 
		 }			
		}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.setForm(formObject);
		YAHOO.util.Connect.asyncRequest("POST",resourceURL,callback)
	}	
	this.resourceGrpRate=function(ratingvalue,resourceid,mode,grpId,ownerId){
		resourceURL = GLOBAL_URI+"resources/resourceRating/"+ratingvalue+","+resourceid+"?ajaxcall=true";
		handleSuccess=function(o){alert(o.responseText);
			if(mode == "list"){location.href=GLOBAL_URI+"groups/groupRes/"+grpId+","+ownerId;}
			else {location.href=GLOBAL_URI +"resources/detail/"+resourceid;} 
		}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET",resourceURL,callback)		
	}
	this.topic = function(){
		getElementId("suggestTopicPanel").style.display = 'block';
		suggestTopicPanel.show();
		showLoading("sLoad");
		resourceURL = GLOBAL_URI+"resources/getTopicForm/"+"?ajaxcall=true";
		handleSuccess = function( o ){hideLoading("sLoad");getElementId("suggestTopicDiv").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET", resourceURL, callback);
	}
	this.postTopic=function(){
		resourceURL = GLOBAL_URI+"resources/postTopic/"+"?ajaxcall=true";
		formObject=getElementId("suggestTopic");
		var pre = this.preloader.getPreLoader();
		handleSuccess=function(o){pre.hide();getElementId("suggestTopicDiv").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.setForm(formObject);
		pre.show();
		YAHOO.util.Connect.asyncRequest("POST",resourceURL,callback)
	}
	this.deleteRes=function(id){
		if(confirm("Are you sure you wish to delete this resource?")){
			resourceURL = GLOBAL_URI+"resources/deleteResEntry/"+id+"?ajaxcall=true";
			handleSuccess=function(o){alert(o.responseText);location.href = GLOBAL_URI+"resources/resources/";}
			callback={success:handleSuccess,failure:this.handleFailure}
			YAHOO.util.Connect.asyncRequest("GET",resourceURL,callback)
		}
	}
	this.deleteAttachment=function(id,aid){
		if(confirm("Are you sure you wish to delete this resource attachment?")){
			resourceURL = GLOBAL_URI+"resources/deleteAttachment/"+id+","+aid+"?ajaxcall=true";
			handleSuccess=function(o){alert(o.responseText);res=new Resources();res.get_res_detail(id);}
			callback={success:handleSuccess,failure:this.handleFailure}
			YAHOO.util.Connect.asyncRequest("GET",resourceURL,callback)
		}
	}
	/*****************shared resources part***************************************/
	this.categories=function(groupid){
		groupURL = GLOBAL_URI+"groups/categories/"+groupid+"?ajaxcall=true";
		handleSuccess=function(o){getElementId("resCatDiv").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET",groupURL,callback)
	}
	this.groupevent=function(groupid){
		groupURL = GLOBAL_URI+"groups/eventcalendar/"+groupid+"?ajaxcall=true";
		handleSuccess=function(o){getElementId("grpCalendarDiv").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET",groupURL,callback)
	}
	this.getCatForm=function(groupid,catid,mode){
		getElementId("addCatPanel").style.display = 'block';
		addCatPanel.show();
		showLoading("catLoad");
		groupURL = GLOBAL_URI+"groups/getCatForm/"+groupid+","+catid+","+mode+"?ajaxcall=true";
		handleSuccess = function( o ){hideLoading("catLoad");getElementId("newCats").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET", groupURL, callback);
	}	
	this.saveResCat=function(groupid,mode){
		if(mode == "add"){groupURL = GLOBAL_URI+"groups/saveResCat/"+groupid+"?ajaxcall=true";}
		else {groupURL = GLOBAL_URI+"groups/updateResCat/"+groupid+"?ajaxcall=true";}
		formObject=getElementId("resAddCatForm");
		var pre = this.preloader.getPreLoader();
		handleSuccess=function(o){pre.hide();getElementId("newCats").innerHTML=o.responseText;res=new Resources();res.categories(groupid);}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.setForm(formObject);
		pre.show();
		YAHOO.util.Connect.asyncRequest("POST",groupURL,callback)
	}
	this.changeStatus=function(groupid,id){
		groupURL = GLOBAL_URI+"groups/changeStatus/"+id+"?ajaxcall=true";
		handleSuccess=function(o){alert(o.responseText);res=new Resources();res.categories(groupid);}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET",groupURL,callback)
	}
	this.deleteCat=function(groupid,catid){
		if(confirm("Are you sure you wish to delete this category?")){
			groupURL = GLOBAL_URI+"groups/deleteCat/"+catid+"?ajaxcall=true";
			handleSuccess=function(o){alert(o.responseText);res=new Resources();res.categories(groupid);}
			callback={success:handleSuccess,failure:this.handleFailure}
			YAHOO.util.Connect.asyncRequest("GET",groupURL,callback)
		}
	}
	this.catOrder=function(groupid,id){
		getElementId("catOrderPanel").style.display = 'block';
		catOrderPanel.show();
		showLoading("ordLoad");
		groupURL = GLOBAL_URI+"groups/getOrderForm/"+groupid+","+id+"?ajaxcall=true";
		handleSuccess=function(o){hideLoading("ordLoad");getElementId("catOrderDiv").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET",groupURL,callback);
	}
	this.saveOrder=function(groupid,id){
		resourceURL = GLOBAL_URI+"groups/saveCatOrder/"+groupid+","+id+"?ajaxcall=true";
		formObject=getElementId("catOrderForm");
		var pre = this.preloader.getPreLoader();
		handleSuccess=function(o){pre.hide();getElementId("catOrderDiv").innerHTML=o.responseText;res=new Resources();res.categories(groupid);}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.setForm(formObject);
		pre.show();
		YAHOO.util.Connect.asyncRequest("POST",resourceURL,callback)
	}
	
	this.getCalForm=function(groupid,eventid,mode){ 
		getElementId("addCalPanel").style.display = 'block';
		
		addCalPanel.show();
		showLoading("calLoad");
		groupURL = GLOBAL_URI+"groups/getCalForm/"+groupid+","+eventid+","+mode+"?ajaxcall=true";
		handleSuccess = function( o ){hideLoading("calLoad");getElementId("newCal").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET", groupURL, callback);
	}	
	this.saveGrpEvent=function(groupid,mode){
		if(mode == "add"){groupURL = GLOBAL_URI+"groups/saveGrpEvent/"+groupid+"?ajaxcall=true";}
		else {groupURL = GLOBAL_URI+"groups/updateGrpEvent/"+groupid+"?ajaxcall=true";}
		formObject=getElementId("grpAddCalForm");
		var pre = this.preloader.getPreLoader();
		handleSuccess=function(o){pre.hide();getElementId("newCal").innerHTML=o.responseText;res=new Resources();res.groupevent(groupid);}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.setForm(formObject);
		pre.show();
		YAHOO.util.Connect.asyncRequest("POST",groupURL,callback)
	}
	this.changeEventStatus=function(groupid,id){
		groupURL = GLOBAL_URI+"groups/changeEventStatus/"+id+"?ajaxcall=true";
		handleSuccess=function(o){alert(o.responseText);res=new Resources();res.groupevent(groupid);}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET",groupURL,callback)
	}
	this.deleteGrpEvent=function(groupid,eventid){
		if(confirm("Are you sure you wish to delete this event?")){
			groupURL = GLOBAL_URI+"groups/deleteGrpEvent/"+eventid+"?ajaxcall=true";
			handleSuccess=function(o){alert(o.responseText);res=new Resources();res.groupevent(groupid);}
			callback={success:handleSuccess,failure:this.handleFailure}
			YAHOO.util.Connect.asyncRequest("GET",groupURL,callback)
		}
	}
	
	this.viewEvent = function(date){
		groupURL = GLOBAL_URI+"groups/viewEvent/"+date+"?ajaxcall=true";
		handleSuccess=function(o){
		getElementId("viewEventDiv").innerHTML=o.responseText;
		}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET",groupURL,callback)
	}
	this.hideEvent = function(date){
		//groupURL = GLOBAL_URI+"groups/viewEvent/"+date+"?ajaxcall=true";
		getElementId("viewEventDiv").innerHTML="";
	}
	
	this.gonext=function(groupid,date){
		groupURL = GLOBAL_URI+"groups/GroupEventCalendar/"+groupid+","+date+"?ajaxcall=true";
		handleSuccess=function(o){
		getElementId("eventcalendarID").innerHTML=o.responseText;
		}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET",groupURL,callback)
	}
	this.get_top_ten = function(show_by){
		showLoading("cLoad");
		resourceURL = GLOBAL_URI+"resources/top_ten_resources/"+show_by+"?ajaxcall=true";
		handleSuccess = function( o ){hideLoading("cLoad");getElementId("countrydivcontainer").innerHTML=o.responseText;}
		callback = {success:handleSuccess,failure:this.handleFailure	}
		YAHOO.util.Connect.asyncRequest("GET", resourceURL, callback);
	}
	this.get_res_detail = function(id){
		resourceURL = GLOBAL_URI+"resources/detail/"+id+"?ajaxcall=true";
		handleSuccess = function( o ){getElementId("countrydivcontainer").innerHTML=o.responseText;}
		callback = {success:handleSuccess,failure:this.handleFailure	}
		YAHOO.util.Connect.asyncRequest("GET", resourceURL, callback);
	}
	this.edit_resource = function(id){
		tinyMCE.execCommand('mceRemoveControl', true, 'description');
		resourceURL = GLOBAL_URI+"resources/edit/"+id+"?ajaxcall=true";
		handleSuccess = function( o ){
			getElementId("countrydivcontainer").innerHTML=o.responseText;
			tinyMCE.execCommand('mceAddControl', true, 'description');
		}
		callback = {success:handleSuccess,failure:this.handleFailure	}
		YAHOO.util.Connect.asyncRequest("GET", resourceURL, callback);
	}
	this.search_by_tag = function(id){
		resourceURL = GLOBAL_URI+"resources/search_by_tag/"+id+"?ajaxcall=true";
		handleSuccess = function( o ){getElementId("countrydivcontainer").innerHTML=o.responseText;}
		callback = {success:handleSuccess,failure:this.handleFailure	}
		YAHOO.util.Connect.asyncRequest("GET", resourceURL, callback);
	}
	this.search_by_form = function(){
		resourceURL = GLOBAL_URI+"resources/searchResource/?ajaxcall=true";
		x = getElementId("searchForm");
		handleSuccess = function( o ){getElementId("countrydivcontainer").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.setForm(x);
		YAHOO.util.Connect.asyncRequest("POST", resourceURL, callback);
	}
	
	this.list_resources=function(){
		resourceURL = GLOBAL_URI+"resources/resources/"+"?ajaxcall=true";
		formObject=getElementId("listresources");
		formObject.action = GLOBAL_URI+"resources/resources/";
		handleSuccess=function(o){getElementId("countrydivcontainer").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("POST",resourceURL,callback)
	}
	
	this.deleteGroupRes=function(resource_id,group_id){
		if(confirm("Are you sure you wish to delete this resource?")){
			resourceURL = GLOBAL_URI+"groups/deleteAttachment/"+resource_id+"?ajaxcall=true";
			handleSuccess=function(o){alert(o.responseText);location.href = GLOBAL_URI+"groups/editRes/"+resource_id+","+group_id;}
			callback={success:handleSuccess,failure:this.handleFailure}
			YAHOO.util.Connect.asyncRequest("GET",resourceURL,callback)
		}
	}
	/*
	this.getCommentForm = function(resourceid){
		getElementId("resCommentPanel").style.display = 'block';
		resCommentPanel.show();
		showLoading("cLoad");
		resourceURL = GLOBAL_URI+"resources/getCommentForm/"+resourceid+"?ajaxcall=true";
		handleSuccess = function( o ){hideLoading("cLoad");getElementId("resCommentDiv").innerHTML=o.responseText;}
		callback={success:handleSuccess,failure:this.handleFailure}
		YAHOO.util.Connect.asyncRequest("GET", resourceURL, callback);
	}
	*/
}
function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}

function addAttachment(){	
	if (allowed_attachments > 3){
		return alert("Sorry, you aren't allowed to post any more attachments.");
	} else {
		getElementId("moreAttachments").innerHTML+= '<table width=100% border=0 cellpadding=2 cellspacing=2 id=resourceViewTable><tr><td align=left valign=top><h2>Description</h2></td><td align=left valign=top><label><input type="text" name="attachement_description'+allowed_attachments+'" /></lable></td></tr><tr><td></td><td><lable><input type="file" name="opt_attachment'+allowed_attachments+'" /><span id="moreAttachments"></span></lable></td></tr></table>';
		allowed_attachments = allowed_attachments + 1;	
	}

	return true;
}
function showtooltip(object) {
    document.getElementById(object).style.visibility = 'visible';
}

function HideToolTip(object) {
    document.getElementById(object).style.visibility = 'hidden';
}

