var projectId;
var selectedTab;
$(document).ready( function () {
	
	// Tab changing
	 /*  $(".tabs").click( function () {
	          var tabId = this.id;
		      showTabLoading();
		
	          $(".activeTAB").removeClass("activeTAB");
	          $("#"+tabId).addClass("activeTAB");
		  	  selectedTab = tabId;
			  
			  doAction();
	   
	   });
	 
	
		doAction();*/
});

function doAction() {
	      
	      if(projectId > 0) { 
	   
	          switch(selectedTab) {
		         
		          case 'milestones' : loadMilestones('upcoming');
		                              break;
		          case 'files'      : loadProjectFiles();
		                              break;
		          
	          }
		   }
		   else {
		      hideTabLoading();
		   }
}



function showTabLoading() {
	$('#alertmod').remove();	
	$('#ui-datepicker-div').remove();
	showOptionWindowLoading();
}
function hideTabLoading() {
	hideOptionWindowLoading();
}

function showprojectWindowLoading() {	
	$("#projectWindow").html('<div class="loading"></div>');
}

function showOptionWindowLoading() {	
	$("#tabOptionWindow").html('<div class="loading"></div>');
}

function showStatusLoading() {
	$("#statusHolder").html('<div class="loading"></div>');
}

function hideOptionWindowLoading() {	
	$("#tabOptionWindow .loading").remove();
}

function hideStatusLoading() {
	$("#statusHolder .loading").remove();
}

// tree functions
function clickNode(mouseEvent, id){ 
    showStatusLoading();
	var node  = tree.getNodeById(id); 
	var elmId = node.id.substr(5);
		
	if(node.xtra == -2) {
	   hideStatusLoading();
	}
	else if(node.xtra == 0) {
		$.post(appUrl+'/app/modules/project/projectLoad.ajx.php',{pageId:elmId, mode:'loadPageDetails'}, function(response) {
			$("#statusHolder").html(response);
        });
    }
	else {
		hideStatusLoading();
		$("#statusHolder").html('<h2>Project Details</h2>');
	}

	return true;
}



function contextMenuClick(selNode, menuId, itemId){
	var selectedNodeId = selNode.orgId;
	
	switch (itemId) {
		case "1": // add page
		          createNewNode(selectedNodeId, 0);
			      break;
		case "2": // rename
		          tree.liveNodeEditStart(tree.getSelNode().id);
			      break;
		case "3": // edit page
			      // LOAD IPLOTZ APP
			      break;
		case "4": // delete 
			      if (confirm('Do u want to delete?')) {
					  deleteNode(selectedNodeId);
				  }
			      break;
		case "5": // move up 
		          moveUp(tree.getSelNodes());
		
			      break;
		case "6": // move Down 
			      moveDown(tree.getSelNodes());			     
			      break;
				
	}
	  
}



function treeMenuShow(selectedNode){
	
	if(tree.getSelNodes().length >= 1){
		var mainRoot = selectedNode.xtra == -3;
		var rootNode = selectedNode.xtra == -2;
		var folder   = selectedNode.xtra == 0;
		
		
		
		treeMenu.enableItem(1, (folder || rootNode) && menuPerm);
		treeMenu.enableItem(2, folder && menuPerm);
		treeMenu.enableItem(3, folder && menuPerm);
		treeMenu.enableItem(4, folder && menuPerm);
		treeMenu.enableItem(5, folder && menuPerm);
		treeMenu.enableItem(6, folder && menuPerm);
	}
	else{
		return false;
	}
}

function saveStructure(id) {
lockPage();
	var xml = tree.toXML(); //get complete XML 

	$.post(appUrl+'/app/modules/project/projectLoad.ajx.php',{projectId:projectId, mode:'saveTree', data: xml},
			 function (response) {
				 
				 var data = filterResponse(response);
				 if(data.status == 'failed'){
					//
					 if(oldNodeName != '') {
					    tree.selNd.capt = oldNodeName;
				        tree.reloadNode(id, false);
					    oldNodeName = '';
					 }
				    alert(data.error);
					unlockPage();
				    return false;
			     }
				 //doAction();
				 oldNodeName = '';
				 unlockPage();
				 return true
			 });
}


function beforeEditNode(id){
	oldNodeName = tree.selNd.capt;
	return true;
}

function deleteNode(nodeId){
	if(nodeId != 0){
		//showLoader();
		tree.removeSelected();
		//saveStructure(nodeId);
	}
}

function createNewNode(nodeId, position){
	var nodeName    = '';
	var defaultText =  'untitled';
	
	
	if(nodeName = prompt('Enter name', defaultText)){
		nodeName = $.trim(nodeName);
		if(nodeName == ''){
			return false;	
		}
		lockPage();
		$.post(appUrl+'/app/modules/project/projectLoad.ajx.php',{projectId:projectId, mode:'addPge', parent:nodeId}, 
		    function (response) {
                    var data = filterResponse(response);
                    if(data.status == 'success') {
				   	   tree.add(data.pageId, nodeId, nodeName, false, treeImagePath+'leaf.gif', false, false, 0);	
				  	   var xml = tree.toXML(); //get complete XML 
	                   $.post(appUrl+'/app/modules/project/projectLoad.ajx.php',{projectId:projectId, mode:'saveTree', data: xml},
			              function (response) {
					             var data = filterResponse(response);
				                 if(data.status == 'failed'){
				                    alert(data.error);
				                    return false;
			                     }
							     tree.reloadNode(0, true);
								 tree.expandNode(nodeId);
						         tree.selectNodeById(data.pageId);
								 
								 unlockPage();
			              }
					   );
			        }
			        else if(data.status == 'failed') {
				        alert(data.error);
				        return false;
			        }
        });	
	
	}
	return false;
}



function moveUp(selNodes) {
	
	// check whether having wireframe access.
	$.post(appUrl+'/app/modules/project/projectLoad.ajx.php',{projectId:projectId, mode:'chkAccess'},
	       function (response) {
			  if(response == 'success') {
	  	         //move before previous node of selected node.
	             var prev=(selNodes[0]?selNodes[0].pv:null);
		         if (!prev) return;
				 
		  	     tree.ctx_moveChild(selNodes, prev, 2);
 	             saveStructure();
	             tree.selectNodeById(selNodes[0].orgId);
			  }
			  else {
				  alert('You have no rights to modify the pages');
				  return false;
			  }
		   }
    );
}


function moveDown(selNodes) {
	// check whether having wireframe access.
	$.post(appUrl+'/app/modules/project/projectLoad.ajx.php',{projectId:projectId, mode:'chkAccess'},
	       function (response) {
			  if(response == 'success') {
	             //move after next node of selected node.
	             var next=(selNodes[0]?selNodes[0].nx:null);
	             if (!next) return;
	
	             tree.ctx_moveChild(selNodes, next, 3);
	             saveStructure();
	             tree.selectNodeById(selNodes[0].orgId);
			  }
			  else {
				  alert('You have no rights to modify the pages');
				  return false;
			  }
		   }
    );
}


function dropNode(e){
	var dest = nlsddSession.destData;
	var src  = nlsddSession.srcData[0];
	
	var sourceId = src.id.slice(5);
	var destId   = dest.id.slice(5);
	
	var sourceArray  = sourceId.split('_');
	var destArray    = destId.split('_'); 
	
    if(destId == '0_1' || destArray[0] == 'M') {
	   if(sourceArray[0] != 'M') {
		      //alert('sitemap to master');
			   return false;
	   }
	}
	if(sourceArray[0] == 'M') {		    
	   if(destArray[0] != 'M' && destId != '0_1') {
		       //alert('master to sitemap');
			   return false;
	   }
	}
	
		
	if(dest.xtra !=0 && dest.xtra !=-2){
		nlsddSession.action=NlsDDAction.DD_INSERT; 
	}
	
	//showLoader();
	
	if(nlsddSession.srcObj.tId == nlsddSession.destObj.tId){ // operation on same tree
		var dropSession = nlsddSession;
		$.post(appUrl+"/app/modules/project/projectLoad.ajx.php",{projectId:projectId, mode:'chkAccess'},
			function(response) {
                if(response == 'success'){
					nlsddSession = dropSession;
					onNodeDrop(e);
					saveStructure();
				}
				else{ 
				  alert('You have no rights to modify the pages');
				  return false;
				}
			} 
		);
	}
	else{ // dragging from other tree , re-use lesson
	
	    onNodeDrop(e);
	}
	return true;
}

function loadProjectList() {
	showprojectWindowLoading();
	$("#projectWindow").load(appUrl+"/app/modules/project/projectLoad.ajx.php",{mode:'loadProjects', projectId:projectId});
}

function projectSelect(e) {
	
	          var pId   = e.value;
			  projectId = pId;
			  
			  doAction();
}


  
function filterResponse(responseData){
	var response = responseData;
	try	{
		response = response.replace(/\r/g, "\\r");
		response = response.replace(/\n/g, "\\n");
		response = response.replace(/&quot;/g, '\\"');
		response = response.replace(/&amp;/g, '\\&');
		response = eval("(" + response + ")");
		return response;
	}
	catch(err)
	{
		var response = responseData;
		try	{
			response = eval("(" + response + ")");
			return response;
		}
		catch(err)
		{
			return false;
		}
		return false;
	}
	
}

function noAccess(){
	error();
	//alert('No Access - temporary Alert')
}
function error(){
	$("#tabOptionWindow").load(appUrl+'/repository/error/error.ajx.php',{});
}

// Load Js Dynamically
var jsCount=0;
var cssCount=0;
function loadJs(file, append){// append true/false 
	var head = document.getElementsByTagName('head').item(0);
	if(! append){
		for(i=0; i<=jsCount; i++){
			var scriptAppend = document.getElementById('loadScript'+i);
			if(scriptAppend) {
				if(scriptAppend.src == file){
					return false; //prevent reload
				}
				head.removeChild(scriptAppend);
			}
		}
		jsCount=0;
	}
	
	script = document.createElement('script');
	script.src = file;
	script.type = 'text/javascript';
	script.id = 'loadScript'+jsCount;
	head.appendChild(script);
	jsCount++;
}
function loadCss(file, append){// append true/false
	var head = document.getElementsByTagName('head').item(0);
	if(! append){
		for(i=0; i<=cssCount; i++){
			var cssAppend = document.getElementById('loadCss'+i);
			if(cssAppend) {
				if(cssAppend.src == file){
					return false; //prevent reload
				}
				head.removeChild(cssAppend);
			}
		}
		cssCount=0;
	}
	
	css = document.createElement('link');
	css.rel = 'stylesheet';
	css.href = file;
	css.type = 'text/css';
	css.id = 'loadCss'+cssCount;
	head.appendChild(css);
	cssCount++;
}

function incrementText(elmntId) {

        var element    = "#"+elmntId;
       // var browser    = !($.browser.msie || $.browser.opera);		
		var e = $(element)[0];		   
			
	//	if(browser) {						
		   $(element).css("height","120px");
	//	}
		
		var newHeight = e.scrollHeight;
		if(newHeight>120) {	
  		   $(element).css("height",newHeight+"px"); 
		}
}

//------adding new project
function addNewProject() {	
	 lockPage();
	 $("#pageLock").html('');
	 
	 loadJs(appUrl+'/app/scripts/lib/ui/ui.core.js',false);
     loadJs(appUrl+'/app/scripts/lib/ui/ui.datepicker.js',false);
	 
	 $("#addProjectWindow").remove();
	 $("body").append("<div id='addProjectWindow'><div class='loading'></div></div>");
	 $("#addProjectWindow").load(appUrl+'/app/modules/project/projectLoad.ajx.php',{mode:'newProject'}, function() {});
	  
     loadJs(appUrl+'/app/scripts/lib/ajaxupload.js',false);	
	 scroll(0,0);	
}
function removeProjectWindow() {
	$("#addProjectWindow").remove();
	unlockPage();
}

/*
	ajax file upload utility
*/
function saveNewProject(tForm, uri){
	$.ajaxUpload({
            uploadform: tForm,
            url: uri,
            secureuri: false,
            dataType: 'json',
            success: function (message) {
				var response = filterResponse(message);
				if(response.status == "success"){
					projectId = response.projectId;
					removeProjectWindow();
					loadProjectList();
					doAction();
				}	
				else{
					alert(response.error);
				}
            },
            error: function (msg, status, e) {
				alert(msg);
				var response = filterResponse(msg);
                 alert(e + ' ' + msg );
                }
     		 });
}

/* viewing replies */

function viewPageComments(id) {
	var projElmnt = 'comment_'+id;
	var htm       = '<span class="comments" id="comments"><span class="loading"></span></span>';	
	hideComments();	
	$("#"+projElmnt).append(htm);
//	focus2comments();
	$(".comments").load(appUrl+'/app/modules/project/projectLoad.ajx.php', {mode:'replyView',commentId:id});
	
}
