jQuery.preloadImages = function()
{
    var theList = arguments;
    if( "object" == typeof(arguments[0])){
	theList = arguments[0];
    }

    for(var i = 0; i<theList.length; i++)
    {
	jQuery("<img>").attr("src", theList[i]);
    }
}

function fetchDiff(changeID){
    $(".change-detail").hide();
    $("#ch-"+changeID).show();
    
    $("tr.selected").removeClass("selected");
    $("#tr-"+changeID).addClass("selected");
    return false;
}
var targetLenderID ;

function setLendersFromForm( initialLoad ){
    $('#lenderSelector input').val('')
    setLenders($('#region-lm04').val(), initialLoad);
    
}

function setLenders(regionCd, initialLoad){
    var cbox = $('#lender-selector-combobox');
    cbox.empty();
    if(  ! regionCd ){
	return;
    }
    var lenderIDs = lenderMap[regionCd];
    cbox.append('<option></option>');
    if( undefined === lenderIDs)
	return;

    for(var i = 0; i< lenderIDs.length; i++) {
	var name = allLendersByID[lenderIDs[i]];
	var selected = '';
	if( initialLoad && lenderIDs[i] == targetLenderID ){
	    selected = ' selected ';
	}
	cbox.append('<option value='+lenderIDs[i]+selected+'>'+ name +'</option>');
    }
}

function searchLender(){
    var lenderID = $('#lender-selector-combobox').val();
    if( ! lenderID )
	return;

    var startArray = $("#start-date").val().split("/").reverse();
    var endArray   = $("#end-date").val().split("/").reverse();
    var index;
    for( index =1; index<=2; index++){
	if( 1==startArray[index].length){
	    startArray[index] = "0"+ startArray[index];
	} 
	if( 1==endArray[index].length){
	    endArray[index] = "0"+ endArray[index];
	} 
    }

    var action  = urlBaseHost +"/lm-search/"+ bookID + "/" + lenderID + "/"
	+startArray.join('')+ "-" +  endArray.join('');
    $('#chooseDateForm').attr('action',action);
    $('#chooseDateForm').submit();
//    window.location = action;
}
function isIE6(){
    return typeof document.body.style.maxHeight == "undefined";
}
function setupLoginRegDialog(){
    if( 0== $('#execute-but').size()  )
	return;

    // setting a global.  ick.
    loginSuccessCallback = function(){
	$('#lm04-form').submit();
    }
    
    var loginRegDialog = $('#login-reg-dialog')
	.dialog({'title':"LENDERmonitor Sign In"
		 ,'autoOpen' : false
		 ,position :'center'
		 ,modal: true
		 ,width: 620
		 ,height: 440
		 ,'bgiframe' : true
		}
	       );
    if( ! isIE6()){
	$('#execute-but').click(function(event){
	    event.preventDefault();
	    loginRegDialog.dialog('open');
	});
    }
}

function setupLM04ConfirmDialog(){
    if( 0== $('#execute-but').size()  )
	return;
    var rejectDialog = $('#lm04-config-dialog')
	.dialog({'title':"LM04 Confirmation"
		 ,'autoOpen' : true
		 ,modal: true
		 ,position :'center'
		 ,width: 500
		 ,'bgiframe' : true
		 , buttons : {
		     "OK" : function(){ 
			 $("#lm04-submit-confirm").val(1);
			 $('#lm04-form').submit();
		     }
		     ,"Cancel" : function(){ 
			 setupLM04SubmitOnPress();
			 rejectDialog.dialog('close');
		     }
		 }
		}
	       );
    $('#execute-but').unbind('click').click(function(event){
	event.preventDefault();
	rejectDialog.dialog('open');
    });
}




function setupLM04SubmitOnPress(){
    if( 0== $('#execute-but').size()  )
	return;
    $('#execute-but').unbind('click').click(function(event){
	$('#lm04-form').submit();
    });
}




// function confirmLM04(){
//     var lenderID = $('#lender-selector-combobox').val();
//     if( ! lenderID )
// 	return;

//     $('#lm04-confirm-dialog').dialog()
// }
    
function setLender( lenderID ){
    targetLenderID = lenderID;
    if( lenderID ) {
	$('#searchBut').removeAttr("disabled");
    }
    else{
	$('#searchBut').attr("disabled", true);
    }
}

function ajaxLogin(event){
    event.preventDefault();
    var form = $(this).parents('form');
    var url =  form.attr('data-api-action');
    $.ajax(
	{
	    cache: false,
	    url: url,
	    type:'POST',
	    timeout: 20000,
	    dataType : 'json',
	    data: {
		'userName' : $('input[name="userName"]',form).val()
		,'password': $('input[name="password"]',form).val()
	    },


	'success': function( data, textStatus){
	    var authenticated = data.authn;
	    if( authenticated ){
		$('.login-reg-form .errorMsg').empty();
		$('.login-reg-form .errorMsg').removeClass('errorMsg').addClass('empty-error-container');
		console.log("okay");
		if( typeof loginSuccessCallback != 'undefined' ){
		    loginSuccessCallback();
		}
	    }
	    else{
		console.log("not okay: ",data);
		$('.login-reg-form .empty-error-container').addClass('errorMsg').removeClass('empty-error-container');
		$('.login-reg-form .errorMsg').html(data.error)
		    .css('border-left-width','10px')
		    .css('border-right-width','10px')
		    .animate({'border-left-width':0
			      ,'border-right-width':0
			     },3000,function(){})
	    }
	},
	    'error': function(XMLHttpRequest,textStatus, errorThrown){
		handleError("Error communicating with server: "+textStatus);
	    }
	});
    return false;
}

$(document).ready(function(){
    if( typeof loginPage == 'undefined' ){
	$('#loginBtn').click(ajaxLogin);
    }
    
    if( "undefined" != typeof(imagesToPreload)){
	$.preloadImages(imagesToPreload);
    }

    $('#head-logo-link').click(function(){
	window.location.pathname='/';
    });
    if( typeof mostRecentID != 'undefined'){
	fetchDiff( mostRecentID );
    }
    
    if("undefined"  != typeof(dynamicLenderSet) && dynamicLenderSet){
	setLendersFromForm(true);
    }

    $('#lender-manual-select').change( 
 	function(){
 	    var str = "";
             $("#lender-manual-select option:selected").each(function () {
		 var value = $(this).val();
		 setLender(value);
             });
 	}
    );
});

