﻿$(function() {
    $(".AutoComplete").each(function() {
        initiateAutocompleter(this);
    });

    $('.MultiParametersContainer').each(function() { updateMultiSelectorsIds(this); });
});

function showTabContent(sender)
{
    var targetDiv = $("#" + $(sender).get(0).id + "Content");

    if (!targetDiv.is(":visible"))
    {
        $(".TabContent:visible").fadeOut(100, function()
        {
            targetDiv.fadeIn(100);
            $(".SideTab.Selected").addClass("Disable");
            $(".SideTab.Selected").removeClass("Selected");
            $(sender).addClass("Selected");
            $(sender).removeClass("Disable");
        });
    }

    if (targetDiv.get(0).id == "SettingsContent")
    {
        $("#SideTabs").hide();
    }
    else
    {
        if ($("#SideTabs:hidden"))
            $("#SideTabs").show();

        var targetDivId = targetDiv.get(0).id.replaceAll("Content", "Container");
            $.ajax(
		    {
		        url: baseUrl + "Users/" + targetDivId,
		        dataType: "html",
		        type: "POST",
		        success: function(data, textStatus)
		        {
		            $("#SideTabs").html(data); 
		        },
		        error: function(XMLHttpRequest, textStatus, errorThrown)
		        {
		            alert("XMLHttpRequest= " + XMLHttpRequest + " textStatus= " + textStatus);
		        }
		    });
    }
    
   
}

function getMultipleSelectorArray(containerId)
{
    var arr = "";
    $('#' + containerId).find('.MultiParameter').each(function() {
        arr += "#" + $(this).attr('id') + "|" + $(this).attr('itemId');
        $(this).find('select').each(function() { arr += "#" + $(this).attr('id') + "|" + $(this).val(); });
        $(this).find('input.AutoComplete').each(function() { arr += "#" + $(this).attr('id') + "|" + $(this).attr('valueId'); });
        $(this).find('input.OpenText').each(function() { arr += "#" + $(this).attr('id') + "|" + $(this).val(); });
        $(this).find('input[@type=checkbox]').each(function() {
            var isChecked = $(this).is(':checked') ? '1' : '0';
            arr += "#" + $(this).attr('id') + "|" + isChecked;
        });
    });

    return arr.substring(1, arr.length);
}

function updateParentContainer(sender)
{
    //alert("updateParentContainer");
    var parentContainer = $(sender).parents('.MultiParametersContainer');
    if (parentContainer.parents('#RegistrationPage').length > 0)
        parentContainer.find('.valuesArray').val(getMultipleSelectorArray(parentContainer.attr('id')));
}


function generateArraysOnSubmit(senderForm)
{
    //alert("generateArraysOnSubmit");
    $(senderForm).find('.MultiParametersContainer')
	 .each(function()
	 {
	     $(this).find('.valuesArray').val(getMultipleSelectorArray($(this).attr('id')));
	 });
}


function SubmitNotification(senderForm) {
    var form = $(senderForm).parents("form");
    if (form.validateInputs()) {
        $.post(baseUrl + "Users/SaveNotifications",
			{
			    notificationEmail: $("#notificationEmail").val(),
			    notificationIM: $("#notificationIM").val(),
			    notificationSMS: $("#notificationSMS").val(),
			    chkLimitNotificationHours: $("#chkLimitNotificationHours").is(":checked"),
			    txtDontSendFrom: $("#txtDontSendFrom").val(),
			    txtDontSendTo: $("#txtDontSendTo").val()
			},
			function(data) {
			    if (data.answer == "OK") {
			        showYellowMessage('השינויים נשמרו', 600);
			    }
			    else {
			        showYellowMessage('השינויים נשמרו', 600);
			    }
			}, "json");
    }
    return false;     
}

//function initiateAutocompleter(sender) {
//    $(sender).focus(function() {
//        $(this).autocomplete(baseUrl + "Handlers/AutocompleteHandler.ashx",
//			{
//			    autoFill: true, delay: 150, maxItemsToShow: 12,
//			    selectFirst: true, mustMatch: 1,
//			    extraParams: { targetType: $(this).attr("targetType") },
//			    onItemSelect: function(li) { if (li.extra) $(sender).attr("valueId", (li.extra)); }
//			});
//    });
//}

function initiateAutocompleter(sender)
{
    $(sender).focus(function()
    {
        var mustMatch = 0;
        if ($(this).attr("targetType") == "cities")
            mustMatch = 1;

        var action = "";
        switch ($(this).attr("targetType"))
        {
            case "organizations":
                action = "GetOrganizations";
                break;
            case "cities":
                action = "GetCities";
                break;

        }
        $(this).autocomplete(baseUrl + "Autocomplete/" + action,
			{
			    autoFill: false, delay: 150, maxItemsToShow: 12,
			    selectFirst: true, mustMatch: mustMatch,
			    scroll: false,
			    extraParams: { targetType: $(this).attr("targetType") }
			 
			}).result(function(event, item)
			{
			    $(sender).attr("valueId", item.toString().split(",")[1]);
			});

    });
}

function updateMultiSelectorsIds(container)
{
    //alert("updateMultiSelectorsIds");
    $(container).find('.MultiParameter')
				.each(function(i) {
				    $(this).attr('id', $(this).attr('name') + i);
				    $(this).find('select').each(function() { $(this).attr('id', $(this).attr('name') + i); });
				    $(this).find('input').each(function() { $(this).attr('id', $(this).attr('name') + i); });
				});
    $(container).find('.valuesArray').val(getMultipleSelectorArray($(container).attr('id')));
}

function addContainer(sender) {
    var parentContainer = $(sender).parents('.MultiParametersContainer');
    var currentContainer = parentContainer.find('.MultiParameter:last'); // get the current container just been clicked.
    var newContainer = currentContainer.clone(); 		 // create a new container to inject.

    resetMultiParameterValues(newContainer);

    newContainer.css('display', 'none').find('.SelectBG').css('display', 'none');
    parentContainer.append(newContainer); 				    // inject the new container.
    newContainer.fadeIn('slow', function() { updateMultiSelectorsIds(parentContainer); }).find('.SelectBG')
							   .fadeIn('slow', function() { updateMultiSelectorsIds(parentContainer); });
    //newContainer.fadeIn('slow').find('.SelectBG')
	//						   .fadeIn('slow', function() { updateMultiSelectorsIds(parentContainer); });

}

function removeContainer(sender) {
    var currentContainer = $(sender).parents('.MultiParameter'); // the one just been clicked to remove.
    var parentContainer = $(sender).parents('.MultiParametersContainer');

    // AJAX REMOVE ITEM.
    if (currentContainer.attr('itemId') != 0)
        $.post(baseUrl + "Users/RemoveItem",
		{ requestType: "RemoveItem", type: currentContainer.attr('type'), itemId: currentContainer.attr('itemId') },
		function(data) { });

    if (currentContainer.next().is('.MultiParameter') || currentContainer.prev().is('.MultiParameter')) {
        currentContainer.fadeOut('slow', function() { $(this).remove(); })
						.find('.SelectBG')
						.fadeOut('slow', function() { updateMultiSelectorsIds(parentContainer); });
    }
    else
        resetMultiParameterValues(currentContainer);
}

function resetMultiParameterValues(element) {
    element = $(element);
    element.find('select.childList').html("<option value='0'>- בחר -</option>");
    element.find('select:not(.childList)').find('option:first')
										  .attr('selected', 'selected')
										  .siblings().removeAttr('selected');
    element.find('.TextField').each(function() { // reset the ".AutoComplete" input for the new container.
        $(this).val('').attr('valueId', '0').val('');
        if ($(this).is('.AutoComplete'))
            initiateAutocompleter(this);
    });
    element.attr('itemId', '0'); // reset the "itemId" for the new container - Means a new instance.
    element.find('select').each(function() { showValue(this); });

}

function calcNotification(sender) {
    var hidden = $('#' + 'notification' + $(sender).attr('notType'));
    if ($(sender).is(':checked'))
        hidden.val(parseInt(hidden.val()) + parseInt($(sender).val()));
    else
        hidden.val(parseInt(hidden.val()) - parseInt($(sender).val()));
}

function calcNotificationValue(notificationClass) {
    var sum = 0;
    $("." + notificationClass).each(function() {
        if ($(this).is(":checked"))
            sum += parseInt($(this).val());
    });
    return sum;
}

function showFullProfile()
{
    var CatsSkillsContainer = $('#CatsSkillsContainer');
    CatsSkillsContainer.fadeOut("slow", function() { CatsSkillsContainer.remove(); });    
    $.post(baseUrl + "Registration/FullDetails",
		function(data)
		{		    
		    $('#FullProfile').html(data);
		    $('#FullProfile').fadeIn('slow');

		    //$('#CatsSkillsContainer').remove();

		    var SaveProfile = $('#SaveProfile');
		    var BuildFullProfile = $('#BuildFullProfile');

		    BuildFullProfile.fadeOut("slow", function() { BuildFullProfile.remove(); });
		    SaveProfile.val("שמור פרופיל מלא");
		    $('#profileType').val("full");

		    $('.MultiParametersContainer').each(function() { updateMultiSelectorsIds(this); });
		    $(".AutoComplete").each(function()
		    {
		        initiateAutocompleter(this);
		    });
		});
}