var currentFolder = "";
var currentPage = 0;
var hasMore = false;
var currentSelection = "";
 var includeChildren = false;
function getFiles(folderCrumb, page, perpage, userContext) { 
    blockingCall();
    CreateThe.NeimanMarcus.Web.CodeBase.WebServices.FileService.GetFilesByFolderBreadCrumbChildren(folderCrumb, page, perpage,includeChildren, getFiles_success, onFailed,userContext); 
}
function getFolders(folderCrumb, ddlIndex) { 
    blockingCall();
    currentSelection = folderCrumb;
    CreateThe.NeimanMarcus.Web.CodeBase.WebServices.FolderService.GetChildFolders(folderCrumb, getFolders_success, onFailed,ddlIndex); 
}
function getProducts(folderCrumb, page, ddlIndex){
    blockingCall();
    if(ddlIndex != undefined){
        includeChildren = (ddlIndex == 2);
    }
    getFiles(folderCrumb, page, 16, new Array(folderCrumb,page));
}
function getFolders_success(e, ddlIndex,methodName) { 
    var result = eval(e); 
    var options = '';
    stopBlinking();
    if (ddlIndex == 0){
        options += '<option value="null">Select Category</option>';
        $($("select.ajaxDdl")[ddlIndex+1]).addClass("hidden");
        $($("select.ajaxDdl")[ddlIndex+2]).addClass("hidden");
    }
    else if(result != null){
        if(result.length > 0){
            options += '<option value="null">Select</option>';
            currentSelection = "";
        }
    }
//    alert(ddlIndex.id);
    for(var property in result) {
        if (result[property]['Hide in Nav'] == 'true')
            continue;
    
        if(result[property]['Name'] == 'New Arrivals' || result[property]['Name'] == 'Gift With Purchase' || result[property]['Name'] == 'Club Couture' ||
           result[property]['Name'] == 'Love G&P' || result[property]['Name'] == 'Gifts' || result[property]['Name'] == 'Shop by Keyword' || result[property]['Name'] == 'Shop By Keyword' ||
           result[property]['Name'] == 'Couture Couture' || result[property]['Name'] == 'Sale' || result[property]['Name'] == 'Fun Stuff' || result[property]['Name'] == 'New Arrivals')
            continue;
        if((ddlIndex == 2) && (result[property]['WebFileCount'] == 0)){
            continue;
        }
    
        options += '<option value="' + result[property]['FolderBreadCrumb'] + '">' + result[property]['Name'] + '</option>';
    }
    var target = $("select.ajaxDdl")[ddlIndex];
        $(target).html(options);
        if(!nullOrEmpty(options)){
            $(target).removeClass("hidden");
            if (!$.browser.msie) {
                $(target).animate({ backgroundColor: "pink" }, { queue: true, duration: 500 })
                    .animate({ backgroundColor: "white" }, { queue: true, duration: 500 });
            }
        }
        
    var target2 = $("select.ajaxDdl")[ddlIndex+1];
    if(target2 != undefined){
        $(target2).html('');  
        $(target2).addClass("hidden");
    }
    if(ddlIndex != 0){
        if(!nullOrEmpty(currentSelection)){
            getProducts(currentSelection,1);
        }
        else
        {
            removeBlock();
        }
    }
    else
    {
        removeBlock();
    }
    
}
function getFiles_success(e, userContext,methodName) { 
    var result = eval(e); 
    var folderData = new Sys.StringBuilder(); 
    var html = '';
    for(var property in result) 
    { 
    
        folderData.appendLine('<li id="productId-'+(parseInt(property)+1)+'"><img src="'+CTSimagePath+result[property]['SystemFileName']+'" alt="'+new String(result[property]['ThumbName']).replace('"',"'")+'||'+new String(result[property]['ItemId']).replace('"',"'")+'||'+new String(result[property]['BaseFileId']).replace('"',"'")+'||'+new String(result[property]['SystemFileName']).replace('"',"'")+'" /></li>');
        
        hasMore = result[property]['HasMore'];
    }
    if(!nullOrEmpty(result)){
            $("#products").html(folderData.toString());
        // Drag/Drop
        $('#products li').draggable({
            helper: 'clone'
        });
        
        currentFolder = userContext[0];
        currentPage = userContext[1];
        if(currentPage > 1){
            $("#prev").removeClass("hidden");
        }
        else
        {
            $("#prev").addClass("hidden");
        }
        if(hasMore){
            $("#next").removeClass("hidden");
        }
        else
        {
            $("#next").addClass("hidden");
        }
    }else
    {
        $("#prev").addClass("hidden");
        $("#next").addClass("hidden");
    }
    stopBlinking();
    removeBlock();
}
function stopBlinking(){
    $("select.ajaxDdl").each(function(){
        $(this).queue( [ ] ).stop().css( { backgroundColor: "white" });
    });
}

function blockingCall(){
    $("#products-container").blockAjax();
}
function removeBlock(){
    $("#products-container").removeBlock();
    
}

function nullOrEmpty(obj){
    if(obj == null){
        return true;
    }else if(obj.length == 0){
        return true;
    }
    return false;
}

function onFailed() 
{ 
}

function LookControl(userId, gender, name)
{
	this.userId = userId;
	
	this.gender = gender;
	this.name = name;
	this.lookItems = new Array();
	
	this.AddItemToLook = function (itemId, x, y, z, baseFileId,  imageFileName,  itemName)
	{
        this.lookItems[x] = itemId + '","' + x+ '","' + y+ '","' + z+ '","' + baseFileId+ '","' +imageFileName+ '","' +itemName;
	}

	this.RemoveItem = function (itemId, x, y, z)
	{
        this.lookItems[x] = '';
	}

	this.SaveUserLook = function (field)
	{
	    var inputStr = "";
	    for(var i in this.lookItems)
	    {
	        if(this.lookItems[i] != '')
	        {
	            inputStr += this.lookItems[i] + "|" ;
	        }
	    }
	    $(field).val(inputStr.substr(0,inputStr.length-1));
	}
}

