var imgUrl_tmp;
var focusId = "comments";
$(document).ready( function () {
	
	// Tab changing
	 $(".tabs").click( function () {
	    var tabId = this.id;
		showLoading();
		
	    $(".activeTAB").removeClass("activeTAB");
	    $("#"+tabId).addClass("activeTAB");
	   
	    $("#projectBox").load(appUrl+"/projects.ajax.php", {action:tabId});
		$("#searchType").val(tabId);
		$("#tags").load(appUrl+"/projects.ajax.php", {action:'tagCloud',type:tabId});
		$("#searchStr").val('');
		var addbtn = (tabId == 'snippets')?'Add snippet':'Add project';
		$("#addBtn").html(addbtn);
	 });
	
	// Search
	
	 $("#searchForm").submit(function (event) { 
	    event.preventDefault();
		var serachStr = $("#searchStr").val();
		var type      = $("#searchType").val();
		showLoading();
		$("#projectBox").load(appUrl+"/projects.ajax.php", {action:type,searchs:serachStr});		
	 });
	
});

function tagSearch(this1) {
    // Search using tag  
    //var tagName = this.text;
	var tagName = this1.innerHTML;
    var type    = $("#searchType").val();
	showLoading();
	$("#projectBox").load(appUrl+"/projects.ajax.php", {action:'tagSearch', tagName:tagName, type:type});
	$("#searchStr").val('');
}

function getUserProjects(userId,projectId) {
   var type = $("#searchType").val();
   showLoading();
   $("#projectBox").load(appUrl+"/projects.ajax.php", {action:type, userId:userId});
}

function contactOwner(userId,projectId) {
	lockPage();
	scrollShowHide('hide');
	
	$("body").append("<div id='contactWindow'></div>");
	//$("#contactWindow").load(appUrl+'/projectContactOwner.ajax.php', {}, relodCaptcha);
	$.get(appUrl+'/projectContactOwner.ajax.php', {userId:userId,projectId:projectId}, function(response) {
          $("#contactWindow").html(response);
	      relodCaptcha();
    });
	
	scroll(0,0);
}

function sendToOwner() {
	var captcha        = $("#captchaInput").val();
	var firstName      = $("#firstName").val();
	//var lastName       = $("#lastName").val();
	var email          = $("#email").val();
	var messageContent = $("#messageContent").val();
	var userId         = $("#userId").val();
	var projectId      = $("#projectId").val();
	
	$(".error").removeClass("error");
	$(".errorLabel").removeClass("errorLabel");
	
	$.post(appUrl+'/projectContactOwner.ajax.php', {captcha:captcha, firstName:firstName, email:email, messageContent:messageContent,userId:userId, projectId:projectId}, 
		   function(responseData) {
			    var elementID;
				var label;
			    var response = filterResponse(responseData);
				
				if(response.status == 'failed') {
				   for(key in response.error) {
					   elementID = response.error[key];
					   $("#"+elementID).addClass("error");
					   
					   label = $('label').filter("[@for=" + elementID + "]");
					   label.addClass("errorLabel");
				   }
				   $("#errorDiv").show();
				}
				else {
					cancelContact();
					return true;
				}
				$("#captchaInput").val('');
				relodCaptcha();
	});
}


/*
function incrementText(elmntId) {
        var newHeight = $("#"+elmntId)[0].scrollHeight;
		if(newHeight > 150) {
	       $("#"+elmntId).css("height",newHeight+"px"); //  = text_area.scrollHeight - ((isIE())?0:2) + "px";
		}
}
*/

function incrementText(elmntId) {

        var element    = "#"+elmntId;
        var browser    = !($.browser.msie || $.browser.opera);		
		var e = $(element)[0];		   
			
		if(browser) {						
		   $(element).css("height","140px");
		}
		
		var newHeight = e.scrollHeight;
		if(newHeight>140) {	
  		   $(element).css("height",newHeight+"px"); 
		}
}

function cancelContact() {
	$("#contactWindow").remove();
	
	scrollShowHide('show');
	unlockPage();
}

function relodCaptcha() {
	  $("#captcha").attr("src", appUrl+'/captchas.php?id='+Math.round(Math.random(0)*1000)+1);
}

function loadManageWindows(id) {
	var type    = $("#searchType").val();
	if(type == 'projects') {
	   showManageProjects(id);
	}
	else {
	   showManageSnippets(id);
	}
}

function showManageSnippets(snippet) {
	cancelSnippet();
	lockPage();
	scrollShowHide('hide');
	
	$("body").append("<div id='snippetWindow'></div>");
	
	$.get(appUrl+'/manageSnippet.pop.php', {snippet:snippet}, function(response) {
		  if(response == 'login') {
		    location.reload();
		  }
		  else {
             $("#snippetWindow").html(response);
		     incrementText('snippetCode');
		     incrementText('snippetDesc');
		  }
    });
	
	scroll(0,0);
}

function saveSnippet(tForm) {
	var uri = appUrl+'/manageSnippet.pop.php';
	$.ajaxUpload({
            uploadform: tForm,
            url: uri,
            secureuri: false,
            dataType: 'json',
            success: function (message) {
				if(message == "login") {
				  $("#errorDiv").html('Your session has expired. Please login again');
				  $("#errorDiv").show();
				}
				else if(message == "success") {
		           var successHtm = '<div id="snippetDetailDiv"><div class="success">Your snippet has been submitted for administrator\'s approval.</div><div id="" class="addedButton"><input type="button" value="Add another snippet" class="postTopic" id="sendBtn" onClick="showManageSnippets(0)" /><input type="button" value="Close window" class="postTopic" id="" onClick="cancelSnippet()" /></div></div>';
				   $("#snippetWindow").html(successHtm);
				}
				else if(message == "updated") {
					var successHtm = '<div id="snippetDetailDiv"><div class="success">Your snippet has been updated.</div><div id="" class="addedButton"><input type="button" value="Close window" class="postTopic" id="" onClick="refreshTab(\'snippets\')" /></div></div>';
				   $("#snippetWindow").html(successHtm);
				}
				else {
					$("#errorDiv").html(message);
				    $("#errorDiv").show();
				}
				scroll(0,0);
            },
            error: function (msg, status, e) {
				alert(msg);
				var response = filterResponse(msg);
                 alert(e + ' ' + msg );
                }
     		 });
	
}

function cancelSnippet() {
	$("#snippetWindow").remove();
	scrollShowHide('show');
	unlockPage();
}

function getXmlCode(snippetId) {
	lockPage();
	scrollShowHide('hide');
	
	$("body").append("<div id='XmlCodeWindow'></div>");
	
	$("#XmlCodeWindow").load(appUrl+'/getXmlCode.ajax.php', {snippetId:snippetId}, function () {incrementText('snippetCode'); selectCode();});
	scroll(0,0);
}

function cancelXmlWindow() {
	$("#XmlCodeWindow").remove();
	scrollShowHide('show');
	unlockPage();
}

function selectCode() {
   document.getElementById('snippetCode').focus();
   document.getElementById('snippetCode').select();
}

function deleteEntry(snipId) {
   var type    = $("#searchType").val();
   
 //$.post(appUrl+'/projects.ajax.php', {action:'approve'}, function(response) {alert('success');});
// return false;
   if(confirm("This will permanently delete all data, \n Do you want to continue ? ")) {
      $.post(appUrl+'/projects.ajax.php', {action:'delete', snipId:snipId, type:type}, function(response) {
		  if(response == 'login') {
		    //location.reload();
			alert('Your session has expired. Please login again');
		  }
		  else if(response== 'success') {
			  $("#snip_"+snipId).remove();
			  $("#tags").load(appUrl+"/projects.ajax.php", {action:'tagCloud',type:type});
		  }
		  else {
			  alert("Failed to Delete");
		  }
      }); 
   }
}

function showHideImage(action) {
	if(action) {
	   imgUrl_tmp = $("#snipImg img").attr("src");
	   $("#snipImg").html('<input type="file" size="30" name="assetFile" id="assetFile"> <a href="javascript:void(0);" onclick="showHideImage(0)">cancel</a>');
	}
	else {
		var htm = '<img src="'+imgUrl_tmp+'" alt="wireframe" /> <a href="javascript:void(0);" onclick="showHideImage(1)">change Image</a>'
		$("#snipImg").html(htm);
	}
}

function showManageProjects(projectId) {
	cancelSnippet();
	lockPage();
	scrollShowHide('hide');
	
	$("body").append("<div id='snippetWindow'></div>");
	
	$.get(appUrl+'/manageProject.pop.php', {projectId:projectId}, function(response) {
		  if(response == 'login') {
		    location.reload();
		  }
		  else {
             $("#snippetWindow").html(response);
		     incrementText('projectDesc');
		  }
    });
	scroll(0,0);
}

function saveproject(tForm) {
	var uri = appUrl+'/manageProject.pop.php';
	$.ajaxUpload({
            uploadform: tForm,
            url: uri,
            secureuri: false,
            dataType: 'json',
            success: function (message) {
				if(message == "login") {
				  $("#errorDiv").html('Your session has expired. Please login again');
				  $("#errorDiv").show();
				}
				else if(message == "success") {
		           var successHtm = '<div id="snippetDetailDiv"><div class="success">Your project has been submitted for administrator\'s approval.</div><div id="" class="addedButton"><input type="button" value="Add another project" class="postTopic" id="sendBtn" onClick="showManageProjects(0)" /><input type="button" value="Close window" class="postTopic" id="" onClick="cancelSnippet()" /></div></div>';
				   $("#snippetWindow").html(successHtm);
				}
				else if(message == "updated") {
					var successHtm = '<div id="snippetDetailDiv"><div class="success">Your project has been updated.</div><div id="" class="addedButton"><input type="button" value="Close window" class="postTopic" id="" onClick="refreshTab(\'projects\')" /></div></div>';
				   $("#snippetWindow").html(successHtm);
				}
				else {
					$("#errorDiv").html(message);
				    $("#errorDiv").show();
				}
				scroll(0,0);
            },
            error: function (msg, status, e) {
				alert(msg);
				var response = filterResponse(msg);
                 alert(e + ' ' + msg );
                }
     		 });
	
}

function refreshTab(tabId) {
	$("#"+tabId).trigger('click');
	cancelSnippet();
}

function showLoading() {
	$("#projectBox").html('<ul><li class="loading"></li></ul>');
	
	//alert(navigator.userAgent.indexOf('Mac') != -1);
}

function viewComments(id) {
	var projElmnt = 'snip_'+id;
	var htm       = '<span class="comments" id="comments"><span class="loading"></span></span>';	
	hideComments();	
	$("#"+projElmnt).append(htm);
	focus2comments();
	$(".comments").load(appUrl+'/projectComments.ajax.php', {action:'view',projectId:id, type:'projects'});
}
function hideComments() {
	$(".comments").remove();
}
function addComment(id) {
	var projElmnt = 'snip_'+id;	
	var htm       = '<span class="comments" id="comments"><label class="commentLabels" for="commentContent">Add Your Comment : </label><div><textarea class="details" id="commentContent" cols="" rows="" onKeyUp="incrementText(this.id)"></textarea></div><div id="buttonDivs"><input name="projectId" id="projectId" value="'+id+'" type="hidden" /><input type="button" value="submit" class="postTopic" id="submitBtn" onClick="saveComments('+id+')" /><input type="button" value="cancel" class="postTopic" id="" onClick="hideComments()" /></div></span>';
	
	hideComments();	
	$("#"+projElmnt).append(htm);
	focus2comments();
	document.getElementById('commentContent').focus();
}

function focus2comments() {
	var el = document.getElementById(focusId);
	    el.scrollIntoView(false);
		focusId = "comments";
}

function saveComments(id) {
	var projectId      = $("#projectId").val();
	var commentContent = $.trim($("#commentContent").val());
	if(commentContent == "" || projectId != id) {
	   return false;
	}
	$.post(appUrl+'/projectComments.ajax.php', {action:'add',projectId:projectId, type:'projects',commentContent:commentContent}, function(responseData) {
	    var response = filterResponse(responseData);
		if(response.status == "success") {
		  // focusId = 'comment_'+response.id;
		   var capComment = 'comments ('+response.commentCnt+')';
		   $("#commentLnk_"+projectId).html(capComment);
		}
		viewComments(id);
	});
	
}

function scrollShowHide(mode) {
	if((navigator.userAgent.indexOf('Mac') != -1) && $.browser.mozilla) {
	   if(mode == "show") {
	      $("#projectBox ul").css("overflow-y","scroll");
	   }
	   else if(mode == "hide") {
	      $("#projectBox ul").css("overflow-y","hidden");
	   }
	}
}