$(function() {
  $(".draggable").draggable({
	handle: '.wizardTitleBar',
	start: function(event, ui) {$(this).toggleClass('dragging');}, 
	stop: function(event, ui) {$(this).removeClass('dragging');}  
  });
  $(".option").click(function() {$(this).toggleClass('selected');});
});
var wizardFull=false;

function folderHide(){
	$('.currentFolderHolder').hide();
	$("#currentFolderStatus").html("&nbsp;");
	$(".fw-folder-details").hide();
}
function toggleModal(){
	$("#wizard-modal").toggle();
	$("#wizard-modal").css({width:$(window).width(), height:$(document).height(),zIndex:1001});
}

function done(){
	submitForm("getModel","addToFolderModel&itemType=tfilter","topicsForm","tfilter");
	fillDiv("currentFolderContents","ajax_getCompanyList.jsp?a=current");
	submitForm("getModel","addToFolderModel&itemType=filter","sourcesForm","filter");
	fillDiv("currentFolderContents","ajax_getCompanyList.jsp?a=current");
	serializeForm("getModel","addToFolderModel&","#keywordsForm","keyword");
	fillDiv("currentFolderContents","ajax_getCompanyList.jsp?a=current");
}

function toggleWizardForm(qValue) {
	window.scrollTo(0, 0);
	$("#wizard").css({zIndex:1002}).toggle();
	folderHide();
	toggleModal();
	fillDiv('WizardMainSectione','fwMain.jsp?stage=0&q='+qValue);
	currentStep=0;
	wizardFull=true;
}

function editFolderByWizard(folderId, track) {
	window.scrollTo(0, 0);
	$("#wizard").css({zIndex:1002}).toggle();
	folderHide();
	toggleModal();
	$(".fw-folder-details:eq(0)").show();
	fillDiv('WizardMainSectione','editFolder?stage=1&track='+track+'&folderId='+folderId, function(){showCurrentFolderContent(true);});
	currentStep=1;
	wizardFull=true;
}

var currentStep="0";
var qValue="x";

function newView(stage) {newView(stage,'A');}
function newView(stage,track) {
	var fn = function() {
		$("#wizard").show();
		if("0" == stage) {
			folderHide();
		} else {
			//if no option is visible show "Show Folder Contents"
			if($(".fw-folder-details:hidden").size() == 2) {
				$(".fw-folder-details:eq(0)").show();
			}
		}
		if (!(currentStep==stage) || stage == 2/*filters*/) { 
			//page='ajax_folderWizardStep'+stage+'.jsp?track='+track+'&stage='+stage
			page='fwMain.jsp?track='+track+'&stage='+stage
			fillDiv('WizardMainSectione',page);
			currentStep=stage;
		}
	};
	if(currentStep == 1 && stage == 3) {
		checkEmptySearches("fw-empty-search-" + track, fn);
	} else {
		fn();
	}
}

function checkEmptySearches(placeHolderId, callback) {
	$.ajax({url: "/folder-wizard/checkEmptySearches",
		cache:false,
		dataType: "json",
		success: function(res) {
			if(res.status == "SUCCESS") {
				callback();
			} else {
				displayFadeOutMessage(placeHolderId, res.message, {cssClass: "fwErrorMessage"});
			}
		}
	});
}
function refreshFilters(track) {
	newView(currentStep, track);
}

function fillDiv(divId,url, callback) {
	$('#'+divId).html("<center>Loading... <p><img src='../10800/images/loading.gif'/></center>");
	$('#'+divId).load("/folder-wizard/" + url+"&_"+(+new Date), callback);
}
function resetForm(formId,onOff) {
  form=document.getElementById(formId);
  $(':input', form).each(function() {
	 var type = this.type;
	 var tag = this.tagName.toLowerCase(); // normalize case
	 if (type == 'text' || type == 'password' || tag == 'textarea')
	   this.value = "";
	 else if (type == 'checkbox' || type == 'radio')
	   this.checked = onOff;
	 else if (tag == 'select')
	   this.selectedIndex = -1;
  });
  if(formId == 'sourcesForm') {//content type filter
	  if(onOff) {
		  $("#" + formId + " .token").addClass("on");
		  $("#" + formId + " .includeFilter").addClass("on");
		  $("#" + formId + " .excludeFilter").removeClass("on");
		  $("#" + formId + " input[type=checkbox]").each(function() {
			  var v = this.value;
				if(v.charAt(0) == "-") {
					v = v.substring(1);
				}
			  $(this).attr("checked", "true").val(v); 
		  });
	  } else {
		  $("#" + formId + " .token").removeClass("on");
		  $("#" + formId + " .includeFilter").removeClass("on");
		  $("#" + formId + " .excludeFilter").removeClass("on");
		  $("#" + formId + " input[type=checkbox]").removeAttr("checked");
	  }
  }
}

function serializeFormNoReturn(url,action,formId){
	try {
		 var dataString = url+"?action="+action +"&";
		 dataString += $(formId).serialize();
		 $.post("/folder-wizard/" + dataString);
	} catch(e){}
}

function serializeForm(url,action,formId, callback){
	try {
	 var dataString = url+"?action="+action +"&";
	 updateModel(dataString, $(formId).serialize(), callback);
	} catch(e){}
}

function submitForm(url,action,formId,groupName, callback) {
  var dataString = url+"?action="+action;
  del='';
  var postData = "";
  form=document.getElementById(formId);
  $(':input', form).each(function() {
	 if ($(this).attr('checked')) {
		 postData=postData+del+groupName+'='+encodeURIComponent(this.value); del='&';
	 }
  });
  updateModel(dataString, postData, callback);
}
function updateModel(fullurl, postData, callback) {
	try {
		$.ajax({
			url: "/folder-wizard/" + fullurl,
			data: postData,
			cache:false,
			success: function(data) {
				loadCurrentFolderContent(false);
				if(typeof callback == "function") {
					callback.call();
				}
			},
			type:'post'
		});
	} catch(e){}
}
function showTab(tabGroup,tabId) {
	$('.'+tabGroup+'Tab').removeClass('selected'); $('.'+tabGroup+'TabContents').hide();
	$('#'+tabId+'Tab').addClass('selected'); $('#'+tabId+'Contents').show();
}
function completeProcess() {
	n=document.getElementById('finalNameInput');
	var name = $.trim(n.value);
	if (name) {
		var callback = function() {
			var folderId = $("#formA input[name=folderId]").val();
			checkName(name, folderId);
		};
		checkEmptySearches("fw-empty-search-save", callback); 		
	} else {
		$('#tagNameError').html("Please provide a valid folder name").show();
	}
}

function createFolder(){
	$.get("/folder-wizard/getCreateFolder?" + $("#formA").serialize(), function(data){
		updateFolderMenu(); 
		if(data && $.trim(data) != ""){
			toggleWizardForm("aaa");
			location.href="/search?opt=1&folderId=" + $.trim(data);
		}
		/*newView("0");
		showCurrentFolderContent(true);*/ });
	
}

function updateFolder() {
	$.get("/folder-wizard/updateFolder?" + $("#formA").serialize(), 
			function(data) {
				updateFolderMenu(); 
				if(data && $.trim(data) != ""){
					toggleWizardForm("aaa");
					location.href="/search?opt=1&folderId=" + $.trim(data);
				}
			}
	);
	
}

function checkName(folderName, folderId){
	$.ajax({url: 'tag/checkNameAvailablity',
		cache: false,
		data: {newName: folderName, tagId: folderId},
		success: function(data) { 
			if(data.status == 'SUCCESS') {
				if(data.data == 'duplicate') {
					$('#tagNameError').html(data.message).show();
				} else
					if(folderId > 0) {
						updateFolder();
					} else {
						createFolder();
					}
			} else {
				displayStatusMessage(data.status, "savedSearch-ok", data.message);
			}
		},
		dataType: 'json'
	});
}
var currentLoaded=false;

function loadCurrentFolderContent(refresh) {
	try {
		fillDiv('currentFolderStatus','getModel?action=getCurrentFolderStatus');
		if(refresh){
			fillDiv("currentFolderContents","getModel?action=getCurrentFolderModel");
		}else{
			var detailsSelectedTab = $("#companiesNowTab").hasClass("selected") ? "companiesNow" : "filtersNow";
			fillDiv("currentFolderContents","getModel?action=getCurrentFolderModel&tab="+ detailsSelectedTab);
		}	
		currentLoaded=true;
	}catch(e){}
}

function showCurrentFolderContent(refresh) {
	$(".currentFolderHolder").toggle();
	$(".fw-folder-details").each(function() {
		var _this = $(this);
		_this.toggle(_this.css('display') == 'none');
	});
	if(refresh) {
		loadCurrentFolderContent(refresh);
	}
}

/*
function showCurrentFolderContent(refresh) {
	if ($("#detailsLabel").html()=="hide details") {$("#detailsLabel").html("show details");}
	else {$("#detailsLabel").html("hide details");}
      $(".wizardContent").slideToggle();
      $(".currentFolderHolder").slideToggle();
      if (refresh) {loadCurrentFolderContent(refresh);}
}
*/
function choose(x) {
	theId=$(x).attr("id");
	$('#'+theId+'_cb').attr('checked', !$('#'+theId+'_cb').attr('checked'));
}
function selectCTFilter(id, src) {
	var cb = $("#Fs_cb"+ id);
	var tkn = $("#Fs"+ id);
	var inc = $("#Fs_in"+ id);
	var exc = $("#Fs_ex"+ id);
	
	if(src == "token" || src == "include") {
		if(inc.hasClass("on")) {
			tkn.removeClass("on");
			inc.removeClass("on");
			cb.removeAttr("checked");
		} else {
			tkn.addClass("on");
			inc.addClass("on");
			exc.removeClass("on");
			cb.attr("checked", "true");
			var v = cb.val();
			if(v.charAt(0) == "-") {
				cb.val(v.substring(1));
			}
		}
	} else if(src == "exclude") {
		if(exc.hasClass("on")) {
			tkn.removeClass("on");
			exc.removeClass("on");
			cb.removeAttr("checked");
		} else {
			tkn.addClass("on");
			exc.addClass("on");
			inc.removeClass("on");
			cb.attr("checked", "true");
			var v = cb.val();
			if(v.charAt(0) != "-") {
				cb.val("-" + v);
			}
		}
	}
}

