$(document).ready(function() {
	$('.jqDropDownArrow').live('click', showDropDown);
	//$('.jqOperatorTypeDropDownArrow').live('click', showOperatorTypeDropDown);
	$('a.jqShowHideDropDownArrow').live('click', showHideDropdownOption);
	$('a.jqStateDropdwn').live('click', selectedStateCode);
	$('a.jqSortType').live('click', selectedSortingType);
	//$('.jqDropdownOption').live('click', selectedOption);
	$('.jqDistanceDropdownOption').live('click', selectedDistanceOption);
	//$('.jqOperatorTypeDropdownOption').live('click', selectedOperatorTypeOption);
	$('.jqSearchTypeDropdownOption').live('click', selectedSearchTypeOption);
	$('.jqBtnSearch').live('click', clickedSearch);
	$('.jqBtnSort').live('click', clickedSorting);
	$('.jqSubmitLoginForm').live('click', submitLoginForm);
	$('.jqHideFailedLoginOverlay').live('click', hideFailedLoginOverlay);
//	$('.jqTxtSearchZip').live('focus', focusInZipCode);
//	$('.jqTxtSearchZip').live('focusOut', focusOutZipCode);
	$('.jqTxtPasswordTextInput').live("focusin", showPasswordTypeField);
	$('.jqTxtPassword').live("focusout", hidePasswordTypeField);
	$('.jqTxtPassword').live("focusin focusout", processInputDefault);
	$("input:text:not([readonly]),textarea,input:password").live("focusin focusout", processInputDefault);
    });

function showPasswordTypeField()
{
    current = $(this);
    current.hide().next('input:password').show().focus();
    return false;
}

function hidePasswordTypeField()
{
    current = $(this);
    if($.trim(current.val()) == '') {
        current.hide().prev('input:text').show();//.focus();
    }
    
    return false;
}
    function selectedDistanceOption()
    {
	var current = $(this);
    var optionName = current.html()
	var optionId = current.next('input').val()
    var optionContainer = current.closest('.jqDropdwnOptionOuter');
    var textBoxContainer = optionContainer.prev('.jqDropdownTextboxOuter');
    var txtSortTypeBox = textBoxContainer.find('input:visible');
    var hidSortTypeBox = textBoxContainer.find('input:hidden');
	txtSortTypeBox.val(optionName);
	hidSortTypeBox.val(optionId);
    optionContainer.hide();
//	$('.jqTxtSearchDistance').val(option);
//	//$('.jqDistance').html(option);
//	current.closest('.jqDropdwnOptionOuter').hide();
        
        return false;
    }
function selectedSortingType()
{
	var current = $(this);
    var searchForm = $(this).closest('form');
	var optionName = current.html()
	var optionId = current.next('input').val()
    var optionContainer = current.closest('.jqDropdwnOptionOuter');
    var textBoxContainer = optionContainer.prev('.jqDropdownTextboxOuter');
    var txtSortTypeBox = textBoxContainer.find('input:visible');
    var hidSortTypeBox = textBoxContainer.find('input:hidden');
	txtSortTypeBox.val(optionName);
	hidSortTypeBox.val(optionId);
	//$('.jqDistance').html(option);
    searchForm.find('.jqBtnSort').show();
	optionContainer.hide();
        
        return false;
}
function selectedStateCode()
{
	var current = $(this);
	//var optionName = current.html()
	var option = current.next('input').val()
    var optionContainer = current.closest('.jqDropdwnOptionOuter');
    var textBoxContainer = optionContainer.prev('.jqDropdownTextboxOuter');
	textBoxContainer.find('.jqTxtStateCode').val(option);
	//$('.jqDistance').html(option);
	optionContainer.hide();
        
        return false;
}
function showHideDropdownOption() 
{
    var current = $(this);
    var dropdownTextboxOuter = current.closest('div.jqDropdownTextboxOuter');
    var dropdownTextbox = dropdownTextboxOuter.find('input')
    var dropdownTextboxOffset = dropdownTextbox.position();
    var dropdownOptionList =  dropdownTextboxOuter.next('div.jqDropdwnOptionOuter');
    if(dropdownOptionList.is(':visible')){
//        alert('if');
        dropdownOptionList.hide();
    } else {
//        alert('else');
        dropdownOptionList.css({'position': 'absolute', left:dropdownTextboxOffset.left - 6, 'top' : dropdownTextboxOuter.offset().top + dropdownTextboxOuter.height() + 12, width: dropdownTextboxOuter.width() + 12}).show();
//        dropdownOptionList.css({'position': 'absolute', left:dropdownTextboxOffset.left, 'top' : dropdownTextboxOuter.offset().top + dropdownTextboxOuter.height() + 12}).show();
//        dropdownOptionList.css({'position': 'absolute', left:dropdownTextboxOffset.left, 'top' : dropdownTextboxOffset.top + dropdownTextbox.height()}).show();
    }
    return false;
}
function clickedSearch()
{
    var searchForm = $(this).closest('form');

    
    var hidSearchType = searchForm.find('input.jqHidSearchType');
    var zipField = searchForm.find('.jqTxtSearchZip');
    var Zip	    = zipField.val();

    if(hidSearchType.length > 0){
        switch(hidSearchType.val())
        {
            case 'CompanyName':

                    var txtCompany = searchForm.find('input.jqTxtCompanyName');

                    if($.trim(txtCompany.val()) == '' || $.trim(txtCompany.val()) == 'Enter Company Name'){
                        alert('Please provide a company name to search');
                        return false;
                    }
                break;
            case 'LastName':
                    var txtLname = searchForm.find('input.jqTxtLastName');
                    if($.trim(txtLname.val()) == '' || $.trim(txtLname.val()) == 'Enter Last Name'){
                        alert('Please provide a last name of member to search');
                        return false;
                    }
                break;
            case 'City':
                    var txtCity = searchForm.find('input.jqTxtCity');
                    if($.trim(txtCity.val()) == '' || $.trim(txtCity.val()) == 'Enter City Name'){
                        alert('Please provide a city name to search');
                        return false;
                    }
                break;
            case 'State':
                    var txtstate = searchForm.find('input.jqTxtStateCode');
                    if($.trim(txtstate.val()) == '' || $.trim(txtstate.val()) == 'St'){
                        alert('Please select a State code to search');
                        return false;
                    }
                break;
            case 'ZipCode':


                    if(zipField.val() == 'Zip*' || zipField.val() == '')
                    {
                        alert('Please give Zip');
                        zipField.focus();
                        return false;
                    }else if(!validateZip(zipField)){
                        alert('Please give a valid Zip');
                        zipField.focus();
                        return false;
                    }
                break;
            case '':
                        alert('Select Search Type');
                        return false;
                break;
        }
    } else {
        
        if(zipField.val() == 'Zip*' || zipField.val() == '' || zipField.val() == 'Enter Zip code'){
            alert('Please give Zip');
            zipField.focus();
            return false;
        } else if(!validateZip(zipField)) {
            alert('Please give a valid Zip');
            zipField.focus();
            return false;
        }
    }
    
}

function clickedSorting()
{
    var current = $(this);
    var form = current.closest('form');
    var sortType = form.find('input.jqHidSortType').val();

    if($.trim(sortType) == ''){
        alert('Please select any sorting type');
        return false;
    }
}


function validateZip(zipField)
{
    var result = false;
//alert(zipField.val());
    if(/^[0-9]{5}([- ]?[0-9]{4})?$/.test(zipField.val()))
    {
            result = true;
    }
    else if(/^([A-Za-z][0-9][A-Za-z])\s*([0-9][A-Za-z][0-9])$/.test(zipField.val()))
    {
            result = true;
    }
    return result;
    
}

function processInputDefault(event)
{
    if($(this).data("DefaultValue") == null && $(this).attr("title") != "")
    {
        $(this).data("DefaultValue", $(this).attr("title"));
        $(this).removeAttr("title");
    }

    if($(this).data("DefaultValue") != null)
    {
        if(event.type == "focusin")
        {
            if($(this).val() == $(this).data("DefaultValue"))
            {
                $(this).val("");
            }
        }
        else
        {
            if($(this).val() == "")
            {
                $(this).val($(this).data("DefaultValue"));
            }
        }
    }

    /*$(":text,textarea").each(
        function()
        {
            if($(this).data("DefaultValue") == null && $(this).attr("title") != "")
            {
                $(this).data("DefaultValue", $(this).attr("title")).removeAttr("title");

            }
        }).live("focusin", );*/
}

    function showDropDown()
    {
	    var dropdownArrow = $(this);
	    var dropdownContainer = dropdownArrow.closest(".jQSearchBoxContainer");
//	    var dropdownContainer = dropdownArrow.closest(".jqDropdownContainer");
	    var dropdownTextbox = dropdownContainer.find(".jqTxtSearchDistance");
//	    var dropdownTextboxOffset = dropdownContainer.find('.jqDistance').position();
	    var dropdownTextboxOffset = dropdownContainer.find('.jqTxtSearchDistance').position();
	    var dropdownOptionList = dropdownContainer.find(".jqDropdownOptionList");
	    if(dropdownOptionList.is(":hidden"))
	    {
		dropdownOptionList.css({
		    position: "absolute",
		    left: dropdownTextboxOffset.left - 6,
		    top: dropdownTextboxOffset.top + dropdownTextbox.outerHeight()
		}).show();//"slide", {direction: "up"}, "normal");
	    }
	    else
	    {
		dropdownOptionList.hide();//("slide", {direction: "up"}, "normal");
	    }
//alert('dropdown');
	    return false;
    }

    function showOperatorTypeDropDown()
    {
	    var dropdownArrow = $(this);
	    var dropdownContainer = dropdownArrow.closest(".jQSearchBoxContainer");
//	    var dropdownContainer = dropdownArrow.closest(".jqDropdownContainer");
	    var dropdownTextbox = dropdownContainer.find(".jqTxtOperatorType");
//	    var dropdownTextboxOffset = dropdownContainer.find('.jqDistance').position();
	    var dropdownTextboxOffset = dropdownTextbox.position();
	    var dropdownOptionList = dropdownContainer.find(".jqOperatorTypeDropdownOptionList");
	    if(dropdownOptionList.is(":hidden"))
	    {
		dropdownOptionList.css({
		    position: "absolute",
		    left: dropdownTextboxOffset.left,
		    top: dropdownTextboxOffset.top + dropdownTextbox.outerHeight()
//		    top: dropdownTextboxOffset.top 
		}).show();//"slide", {direction: "up"}, "normal");
	    }
	    else
	    {
		dropdownOptionList.hide();//("slide", {direction: "up"}, "normal");
	    }
//alert('dropdown');
	    return false;
    }


    
    function selectedSearchTypeOption()
    {
        var current = $(this);
        var searchForm = $(this).closest('form');
        var optionId = current.next('input').val()
        var option = current.text();
        var dropdownContainer = current.closest('div.jqDropdowContainer');
        var optionOuter = current.closest('div.jqDropdwnOptionOuter');
        var dropDwnTextOuter = optionOuter.prev('div.jqDropdownTextboxOuter')
        
        var companyTextBox = dropdownContainer.find('.jqCompanyNameOuter');
        var stateTextBox = dropdownContainer.find('.jqStateOuter');
        var zipTextBox = dropdownContainer.find('.jqZipcodeOuter');
        var lastNameTextBox = dropdownContainer.find('.jqLastNameOuter');
        var cityTextBox = dropdownContainer.find('.jqCityNameOuter');

        dropDwnTextOuter.find('.jqHidSearchType').val(optionId);
        dropDwnTextOuter.find('.jqTxtSearchType').val(option);
        searchForm.find('.jqBtnSearch').show();

        //$('.jqDistance').html(option);
        if(current.hasClass('jqCompanyName')) {
            
            stateTextBox.hide();
            zipTextBox.hide();
            lastNameTextBox.hide();
            cityTextBox.hide();
            companyTextBox.fadeIn();
            
        } else if(current.hasClass('jqLastName')){
            
            stateTextBox.hide();
            lastNameTextBox.hide();
            zipTextBox.hide();
            cityTextBox.hide();
            companyTextBox.hide();
            lastNameTextBox.fadeIn();
            
        } else if(current.hasClass('jqCityName')){
            
            stateTextBox.hide();
            zipTextBox.hide();
            companyTextBox.hide();
            lastNameTextBox.hide();
            cityTextBox.fadeIn();
            
        } else if(current.hasClass('jqState')){
            
            zipTextBox.hide();
            lastNameTextBox.hide();
            cityTextBox.hide();
            companyTextBox.hide();
            stateTextBox.fadeIn();
            
        } else if(current.hasClass('jqZipCode')){
            
            zipTextBox.hide();
            lastNameTextBox.hide();
            cityTextBox.hide();
            companyTextBox.hide();
            stateTextBox.hide();
            zipTextBox.fadeIn();
        }

        $('div.jqDropdwnOptionOuter').hide();
        return false;
    }
    
    function submitLoginForm()
    {
        var current = $(this);
        var loginForm = current.closest('form')
        var userName = $.trim(loginForm.find('.jqTxtUsername').val());
        var password = $.trim(loginForm.find('.jqTxtPassword').val());
        
        if(userName == '' || password == '')
        {
            alert('Username and password are required');
            return false;
        }
        
        var ajaxSubmitOption    = {
                                    dataType :	"json",
                                    success  :	function(data)
                                                    { //alert(data);return false;

                                                        if(data.error)
                                                        {
                                                            //alert("error");
                                                            if(data.error == 'member-login')
                                                            {
                                                                    var resultOverlay = $(unescape(data.info)); 

                                                                    $("#content").append(resultOverlay);


                                                                    var windowWidth = $(window).width(); 
                                                                    var windowHeight = $(window).height();
                                                                    
                                                                    var resultOverlayWidth = $('#jqFailedLogin').width();
                                                                    var resultOverlayHeight = $('#jqFailedLogin').height(); 
                                                                    var l = (windowWidth -  resultOverlayWidth) / 2 ;
                                                                    var t = (windowHeight/2) - ( resultOverlayHeight / 2 );
                                                                            //TRANSPARENT OVERLAY
                                                                            var documentHeight = $(document).height();
                                                                            var trasparentDiv = '<div id="jqTransparentOverlay" class="trasparent-overlay">&nbsp;</div>';
                                                                            $('body').append(trasparentDiv)
                                                                            var tranparentOverlay = $('#jqTransparentOverlay');
                                                                            tranparentOverlay.width(windowWidth);
                                                                            tranparentOverlay.height(documentHeight);
                                                                            tranparentOverlay.css({
                                                                                                position:"absolute",

                                                                                                left: 0,
                                                                                                top:0
                                                                                                }).show();
                                                                    resultOverlay.css({
                                                                    position:"absolute",

                                                                    left: l,
                                                                    top:t
                                                                    }).slideDown();
                                                                    
                                                                    
//                                                                    var resultOverlay = $(unescape(data.info)); 
//
//                                                                     $("#content").append(resultOverlay);
//
//                                                                    
//                                                            var windowWidth = $(window).width(); 
//                                                            var windowHeight = $(window).height();
//                                                            var resultOverlayWidth = $('#jqFailedLogin').width();
//                                                            var resultOverlayHeight = $('#jqFailedLogin').height(); 
//                                                                    var l = (windowWidth -  resultOverlayWidth) / 2 ;
//                                                                    var t = (windowHeight/2) - ( resultOverlayHeight / 2 );
//                                                                    
//                                                                    resultOverlay.css({
//                                                                        position:"absolute",
//
//                                                                        left: l,
//                                                                        top:t
//                                                                    }).slideDown();
                                                            }
                                                            else
                                                            {
                                                                    handleAjaxError(data.error);
                                                            }
                                                        }
                                                        else if(data.success)
                                                        {
                                                            window.location.href = data.redirect;
                                                        }
                                                    }
                                           };
               loginForm.ajaxSubmit(ajaxSubmitOption);
        
        
    }
    
    function hideFailedLoginOverlay()
    {
        var loginFailedPopup = $(this).closest('#jqFailedLogin').slideUp();
        var trasparentOverlay = $('#jqTransparentOverlay').hide()
    }
    
    function handleAjaxError(response)
    {
            if (response == 'timeout') {
                    alert ('Sorry, the session expired. Please login again');
                    return true;
            } else {
                    return false;
            }
    }
    

                        
                        
                        

                        

