var UserDivPadding="15px";
var nCount=-1;
var gAlbumTitleLenghth=50;
var gAlbumTitles = [];
var gGenres = [{genreId: "1111222233334444", genreTitle:"Жанр 1", genres:[]},
        {genreId: "1111222233334444", genreTitle:"Жанр 1", genres: [
                {genreId: "1111222233334444", genreTitle:"child Жанр 2"},
                {genreId: "1111222233334444", genreTitle:"child Жанр 2"}
            ]},
        {genreId: "1111222233334444", genreTitle:"Жанр 2", genres: [
                {genreId: "1111222233334444", genreTitle:"child Жанр 2"},
                {genreId: "1111222233334444", genreTitle:"child Жанр 2"}
            ]},
        {genreId: "1111222233334444", genreTitle:"Жанр 3", genres: [
                {genreId: "1111222233334444", genreTitle:"child Жанр 2"},
                {genreId: "1111222233334444", genreTitle:"child Жанр 2"}
            ]},
        {genreId: "1111222233334444", genreTitle:"Жанр 4", genres:[]},
        {genreId: "1111222233334444", genreTitle:"Жанр 5", genres:[]}
    ];
    
var gContacts = [{groupId:"112233441", groupTitle:"Родственники", users: ["olga.ivanenko","elena.ivanenko","vladimir.gogol"]},
        {groupId:"112233442", groupTitle:"Одноклассники", users: ["ivan.ivanov","alex.tarasov","anton.kalujin"]},
        {groupId:"112233443", groupTitle:"Коллеги", users: ["denis.shelkunov","sergey.kargopolov","seid.myadiev","jaydarbek.ayazbaev","askar.kalykov"]}
    ];
    
var gIntervalFunc = null;
var gTimerArray = [];    
var pageConf = {};
pageConf.serverAddress = "http://www.zigzagz.net/PhotoBook/";
pageConf.userAlbums = [];
pageConf.userCollections = [];

var albumLoadFlag = false;
var photoUploadComplete = false;
$(document).ready(function(){     
	zwsGetJSON("ListUserAlbumsServlet",{},function(data){
               
        if(data.status=="401"){
            var newUrl = "login.html?continueUrl=" + window.location;
            window.location = newUrl;
        }else{
                $("body").removeClass("hide");
        }
	});
    // Get album list
    //$.getJSON(pageConf.serverAddress + "ListUserAlbumsServlet?callback=?", {}, function(data){ setTriptych(data); });
    
    // Get user tags
    //$.getJSON(pageConf.serverAddress + "ListUserTagsServlet?callback=?", {limit:50}, function(data){ setAllTags(data); });
    
//    $.getJSON(pageConf.serverAddress+"ListCollectionsByUserServlet?callback=?",{},function(data){
//        for(var i=0; i<data.length; i++){
//            pageConf.userCollections.push(data[i]);
//        }
//    });
    
    //TODO - сделать загрузку коллекций
//    for(var i=0; i<gCollections.length; i++){
//        $("#dialogs #CreateAlbumDlg #collections").append('<div style="width:600px; padding-left:2px" id="collection" val="'+gCollections[i].collId+'">'+gCollections[i].collTitle+'</div>');
//    }
   /* for(var i=0; i<gGenres.length; i++){
        $("#dialogs #CreateAlbumDlg #genres").append('<div id="genre" style="padding-left:2px;width:530px;" val="'+gGenres[i].genreId+'">'+gGenres[i].genreTitle+'</div>');
        for(var j=0; j<gGenres[i].genres.length; j++){
            $("#dialogs #CreateAlbumDlg #genres").append('<div id="genre" style="padding-left:18px;width:530px;" val="'+gGenres[i].genres[j].genreId+'">'+gGenres[i].genres[j].genreTitle+'</div>');
        }
    }
    for(var i=0; i<gContacts.length; i++){
        var divGroup = $('<div id="group" val="'+gContacts[i].groupId+'"><input type="checkbox" value="false"/>'+gContacts[i].groupTitle+'</div>');
        $("#dialogs #CreateAlbumDlg #contacts").append(divGroup);
        for(var j=0; j<gContacts[i].users.length; j++){
            var d = $('<div id="contact" grp="'+gContacts[i].groupId+'"><label><input type="checkbox" value="false"/>'+gContacts[i].users[j]+'</label></div>');
            d.css("padding-left",UserDivPadding);
            divGroup.append(d);
        }
    }
    
    $("body").ajaxError(function(event, request, settings){
       alert("Internet Error");
     });*/
    
    createNewUploadForm();     
    
});

function MIMEType(ext)
{
    ext = ext.toUpperCase();
    if(ext=="ZIP")
        return "application/zip";
    else
        return false;
}

function uploadPhoto(div, albumID)
{   
    if(!$("#fileUploadForm input[name='file']", div).attr("value"))
        return;
    
    var redirect = "http://www.zigzagz.net/messageDispatcher.html";
    var callback = "uploadComplete";
    
    zwsGetJSON("UploadSignerServlet",{albumId: albumID, redirect: redirect, callback:callback},function(dt){
           if(dt.status=="200"){                              
               $("#fileUploadForm input[name='policy']",div).attr("value",dt.policy);
               $("#fileUploadForm input[name='signature']",div).attr("value",dt.signature);
               $("#fileUploadForm input[name='acl']",div).attr("value",dt.acl);
               $("#fileUploadForm input[name='key']",div).attr("value",dt.key);
               $("#fileUploadForm input[name='success_action_redirect']",div).attr("value",dt.success_action_redirect);
               $("#fileUploadForm input[name='file']",div).removeAttr("disabled");
               $("#fileUploadForm div#fakefile",div).remove();                              
               //alert($("#fileUploadForm",div).html());
               var opt = {
                   success: uploadComplete
                };
               $("#fileUploadForm",div).ajaxSubmit(opt);              
               
               setFileId(div, dt.photoId);
           }
           else{
                alert("error");
           }
    });
}

function createNewUploadForm()
{
    nCount++;
    var div = $("#uploadContainer #template");
    var ht = 27;
    
    if($.browser.msie) ht=50;
    //$("div#iframe",div).html('<iframe name="upload_'+nCount+'" src="uploadform.html" width="100%" height="'+ht+'x" frameborder="0" scrolling="no"></iframe>');
    div.attr("id","form_"+nCount).removeClass("hide").addClass("form");    
    $("#photoDescrTab",div).click(function(){ $('#tab-container ul',div).tabsClick(2); return false; });    
    
    //div.find("div#upload-box").attr("id","upload-box"+nCount);
    //div.find("div#descr-box").attr("id","descr-box"+nCount);    
    div.find("div#tab-container").find("a:eq(0)").attr("href","#upload-box"+nCount);
    div.find("div#tab-container").find("a:eq(1)").attr("href","#descr-box"+nCount);
    
    div.find("a[id='closeWindow']").click(function(){ div.remove(); createNewUploadForm(); return false;});
	
	//проверка для тэгов
	div.find("#photoTags").keyup(function(e){					
		var tags = $(this).val();
		var arTags = tags.split(",");
		//проверка на количество тэгов
		if(arTags.length>10){
			$(this).blur();
			alert("Превышен лимит тэгов");
			arTags.length = 10;
			$(this).val(arTags.join(","));
			$(this).focus();
		}					
		//проверка на длину каждого тэга
		for(var i=0; i<arTags.length; i++){
			if(arTags[i].length>27){
				$(this).blur();
				alert("превышена допустимая длина тэга");	
				arTags[i]=arTags[i].slice(0,27);
				$(this).val(arTags.join(","));
				$(this).focus();							
			}						
		}					
	});
    
    //for single page
    $("#fileUploadForm input[name='file']").change(function(){ 
        var filePath = $(this).attr("value"), title="";
        var i = filePath.lastIndexOf(".");        
        if(i>0){            
            if(MIMEType(filePath.substr(i+1))==false){
                alert("Запрещенный тип файла!\nРазрешеный тип файла zip");
                $("#fileUploadForm")[0].reset();
                return false;
            }
            else{
                $("#fileUploadForm input[name='Content-Type']",div).attr("value", MIMEType(filePath.substr(i+1)));
                var n = filePath.lastIndexOf("\\");
				if(n==0)
					n = filePath.lastIndexOf("/");
                if(n>0)
                    title = filePath.substr(n+1);
                else
                    title = filePath;                            
            }            
        }
        setFileName( title);
//        $("#fileSelect",div).html(filePath);        
//        $("#fileTitle",div).html((title.length>50)?(title.substr(0,50)+"..."):title);
    });
//    if($.browser.msie){
//        $("div#fakefile",div).removeClass("hide");
//        $("input[name='file']",div).css("position","absolute").css("left","-1000");
//        $("#buttonSelect",div).click(function(){ $("input[name='file']",div).click(); $("input[name='file']",div).change(); });
//    }
    //----------------
    
    //$("input#album",div).click(function(){ $(this).blur();});
    if(!$.browser.msie)
        $("#album").parents("table.field_upload").removeClass("field_upload").addClass("field_03");
    //$("input#album",div).change(function(){ return false; });
    
    $("input[name='title']").keyup(function(){
        var strTitle = $(this).val();
        $("span#photoTitle").html((strTitle.length>35)?(strTitle.substr(0,33)+"..."):strTitle);
        if($(this).val()=="")
            $("span#colon").addClass("hide");
        else
            $("span#colon").removeClass("hide");
    });
    
//    $("#hideForm", div).toggle(function(){
//        $("div#formBody",div).toggle();        
//        $(this).html("развернуть").attr("clicked","true");        
//        return false;
//    }, function(){
//        $("div#formBody",div).toggle();        
//        $(this).html("свернуть").removeAttr("clicked");
//        return false;
//    });
        
    $("#createAlbum").click(function(){ createAlbumDlg(div); return false; });
    $("#selectAlbum").click( function(){ createSelectAlbumDlg(div); });
   /* 
    $("#uploadNow").click(function(){                
        var div = $(this).parents(".form");
        
        if($("input[name='file']",div).val()==""){
            alert("Выберите файл");
            return false;
        }
        
        if(div.find("#album").attr("albId")==-1){
            alert("Выберите альбом");
            return false;
        }
		
	var filePath = div.find("input[name='file']").val();		
        var i = filePath.lastIndexOf(".");        
        if(i>0){            
            if(MIMEType(filePath.substr(i+1))==false){
                alert("Запрещенный тип файла!\nРазрешены файлы только формата jpeg и gif");
                $("#fileUploadForm")[0].reset();
                return false;
            }                        
        }
        
        var fileName = div.find("input#photoTitle").val();
        $("span#photoTitle",div).html((fileName.length>35)?(fileName.substr(0,33)+"..."):fileName);
        $("span#colon",div).removeClass("hide");
        
        $("#progress",div).removeClass("hide");   
        div.find("div#uploadForm").hide();//css("position","absolute").css("top","-1000").css("left","-1000");//addClass("hide");
        div.find("div#uploadMessage").removeClass("hide");
        div.find("div#uploadMessage").find("#uploadPhotoTitle").html(fileName);
        
        div.find("#cancel").removeAttr("disabled");
        
        uploadPhoto(div, div.find("#album").attr("albId"));
        $('#tab-container ul',div).tabsEnable(2); 
        return false;
    });
    */
    $("#SavePhotoInfo", div).click(function(){ 
        var div = $(this).parents(".form");
        var strTitle = $("input#photoTitle",div).attr("value");
		if(!strTitle || strTitle==""){
			alert("Укажите название фотографии!");
			return false;
		}
        $("#photoTitle",div).html((strTitle.length>35)?(strTitle.substr(0,33)+"..."):strTitle);    
        
        div.find("div#saveInfoForm").addClass("hide");
        div.find("div#saveInfoMessage").removeClass("hide");
        div.attr("infoFilled","yes");        
        if(div.attr("uploaded")=="yes")
            saveFileInfo(div);
        
        return false;    
    });
    
    $("#cancelUpload", div).click(function(){ 
        if(confirm("Вы действительно хотите отменить загрузку фото?")){
            $("#progress",div).addClass("hide"); 
            div.find("div#uploadMessage").addClass("hide");            
            div.find("div#uploadForm").addClass("hide");
            div.find("div#uploadCancel",div).removeClass("hide");
            $(this).attr("disabled","true");
            $('#tab-container ul',div).tabsClick(1);
            $('#tab-container ul',div).tabsDisable(2); 
            
            var iframe = $("iframe[name^='jqFormIO']");            
            if(iframe.length==0) return false;
            var io;
            if(window.frames[iframe.attr("name")])
                io = window.frames[iframe.attr("name")];
            else
                io = iframe[0];
            
            if($.browser.msie){               
                var doc = io.document;
                doc.execCommand('Stop');
            }

            setTimeout(function() {
                iframe.remove();                
            }, 50);            
            
        }
        return false;
    });
    
    //$("#uploadContainer").append(div);
    $('#uploadContainer div > ul').tabs();
    $('#uploadContainer div > ul').tabs({ disabled: [2]});
    //$('#uploadContainer ul').tabs();
}

//-------------------------- диалоговое окно создания нового альбома ----------------------------
function createAlbumDlg(div)
{
    gAlbumTitles = [];
    $("td[id='title']").each(function(){ if($(this).html()!="") gAlbumTitles.push($(this).html()) });	
	var height = 340;
	if($.browser.msie)
		height = 350;
    var b = jBox.open("div-dlgCreateAlbum","div","CreateAlbumDlg","Cоздать альбом","width=626,height="+height+",center=true,draggable=true,model=true");
    $("iframe#jBox_hideIframe").css("z-index","5");
    $(".jBoxHandler div",b).remove();
	
    //при выборе группы выбираются и все пользователи в этой группе
    $("#contacts > #group",b).find("input:first").click(function(){            
        if($(this).attr("checked"))
            $(this).parents("#group").find("input").attr("checked","checked");        
        else
            $(this).parents("#group").find("input").removeAttr("checked","checked");        
    });    
    
    for(var i=0; i<pageConf.userCollections.length; i++){
        $("#collections",b).append('<div style="width:600px; padding-left:2px" id="collection" val="'+pageConf.userCollections[i].collectionId+'">'+pageConf.userCollections[i].collectionTitle+'</div>');
    }
	
    //$("input#ok",b).attr("disabled","true");//.addClass("button_06");    
    //disable ACL 
    $("input[value='public']",b).attr("checked","checked");
    //$("td#publicCell",b).remove();
    $("a#selectAll",b).toggle(
        function(){ $(this).attr("clicked","true"); $(this).html("отменить всех"); $("#contacts",b).find("input").attr("checked","checked"); return false; }, 
        function(){ $(this).attr("clicked","false"); $(this).html("выбрать всех"); $("#contacts",b).find("input").removeAttr("checked","checked"); return false; }
    );
    $("a#selectAllSelected",b).toggle(
        function(){ $(this).attr("clicked","true"); $(this).html("отменить всех"); $("#selectedContacts",b).find("input").attr("checked","checked"); return false; }, 
        function(){ $(this).attr("clicked","false"); $(this).html("выбрать всех"); $("#selectedContacts",b).find("input").removeAttr("checked","checked"); return false; }
    ).hide();
    
    //логика отображения ссылки "выбрать всех/отменить всех"
    $("#contacts",b).find("input").click(function(){
        if($("#contacts",b).find("input:checked").length==0)
            if($("a#selectAll",b).attr("clicked")=="true")
                $("a#selectAll",b).click();
        if($("#contacts",b).find("input").length==$("#contacts",b).find("input:checked").length)
            if($("a#selectAll",b).attr("clicked")=="false")
                $("a#selectAll",b).click();
    });
    
    $("#aclContainer",b).find("p").addClass("disabled").find("a.d_01").hide();
    //$("#aclContainer",b).addClass("disabled");//.find("input").attr("disabled","true");
    $("#contacts",b).hide();
    $("#selectedContacts",b).hide();
    //$("#linkSelect img",b).attr("src","images/rr.png");
    //$("#linkDelete img",b).attr("src","images/lg.png");
    //
    
    //$("#collections",b).jScrollPane({showArrows:true, scrollbarWidth: 17});
    //$("#collections > #collection",b).click(function(){ $(this).parents("#collections").find("div[id='collection']").removeClass("selected"); $(this).addClass("selected"); });
    //$("#genres",b).jScrollPane({showArrows:true, scrollbarWidth: 17});
    //$("#genres > #genre",b).click(function(){ $(this).parents("#genres").find("div[id='genre']").removeClass("selected"); $(this).addClass("selected"); });
    $("#cancel",b).click(function(){ b.hidejBox(); });

    $("input#title",b).keyup(function(){
        if(jQuery.inArray($(this).val(),gAlbumTitles)>-1){
            $(".jBoxHandler",b).find("#title").html("такой альбом уже существует");
            $("input#ok",b).attr("disabled","true").removeClass("button_06");  
            return;
        }
        else{
            $(".jBoxHandler",b).find("#title").html("создание нового альбома");
            $("input#ok",b).removeAttr("disabled").addClass("button_06");
        }
                       
    });    
    $("input[name='acl']",b).click(function(){        
        if($(this).val()=="protected"){//enable ACL for friends
            $("#contacts",b).show();//removeClass("disabled").find("input").removeAttr("disabled","true").end().find("a").show();
            $("#selectedContacts",b).show();//removeClass("disabled").find("input").removeAttr("disabled");
            //$("#aclContainer",b).find("p").removeClass("disabled").find("a").show();
            $("#contacts",b).jScrollPane({showArrows:true, scrollbarWidth: 17});
            $("#selectedContacts",b).jScrollPane({showArrows:true, scrollbarWidth: 17});            
            if($("#contacts",b).find("#contact").length>0){
                $("#aclContainer",b).find("a#selectAll").show();
                $("#linkSelect img",b).attr("src","images/rr.png");
            }                
            if($("#selectedContacts",b).find("#contact").length>0){
                $("#aclContainer",b).find("a#selectAllSelected").show();
                $("#linkDelete img",b).attr("src","images/lr.png");
            }
        }else{
            $("#contacts",b).hide();//addClass("disabled").find("input").attr("disabled","true").end().find("a").hide();
            $("#selectedContacts",b).hide();//addClass("disabled").find("input").attr("disabled","true");                
            $("#aclContainer",b).find("p").addClass("disabled").find("a.d_01").hide();
            $("#contacts ~ div, #contacts ~ a",b).hide();
            $("#selectedContacts ~ div, #selectedContacts ~ a",b).hide();
            $("#linkSelect img",b).attr("src","images/rg.png");
            $("#linkDelete img",b).attr("src","images/lg.png");
        }
    });
    //нажатие на кнопку "создать альбом"
    $("#ok",b).click(function(){
        var strTitle = $("input#title1",b).attr("value");
        var strAcl = $("input[name='acl1']:checked",b).val();
        var strDescr = $("textarea#description1",b).attr("value"); 
        var strCollId = $("#collections div.selected",b).attr("val");
        var strCollName = $("#collections div.selected",b).html();
        var strGenreId = $("#genres div.selected",b).attr("val");
        var strGenreName = $("#genres div.selected",b).html();
        $("#cancel",b).attr("disable","true");
        var strContacts = "";

        if(!strTitle || strTitle==""){
            alert("Введите наименование альбома"); 
            return false;
        }
        if($("input[name='acl']:checked").val()=="protected"){
            if($("#selectedContacts #contact",b).length==0){
                alert("Выберите контакты");
                return false;
            }
            else{
                $("#selectedContacts",b).find("div[id='contact']").each(function(){
                    strContacts+=$(this).find("label").text()+",";
                });
            }
        }

        //$("#progress",b).removeClass("hide");   
		$(this).attr("disabled","true");
        $("#albumCreationStatus",b).removeClass("hide");
		     
        $("form#CreateAlbumForm #title",b).val(strTitle);        
        $("form#CreateAlbumForm #acl",b).val(strAcl);
        $("form#CreateAlbumForm #description",b).val(strDescr);
        //$("#CreateAlbumForm #description",b).val(strDescr);
//        var opt = {
//                iframe: true,                
//                //beforeSubmit: function(formData){var queryString = $.param(formData); alert('About to submit: \n\n' + queryString); },
//                success: function(data){
//                    alert(data);
//                    if(data.status == "200") {
//                        div.find("#album").attr("albId", data.albumId).html(data.albumTitle);
//                        b.hidejBox();
//                    }
//                    else{
//                        if(data.status=="400"){
//                            $(".jBoxHandler",b).find("#title").html("такой альбом уже существует");
//                            $("input#title",b).addClass("bad");
//                        }
//                        else
//                            alert("Error creating album");
//                    }
//
//                    $("#cancel",b).removeAttr("disable");
//                    $("#progress",b).addClass("hide");                    
//                }
//            };
       var $io = $("<iframe id='createAlbumIframe' name='createAlbumIframe'/>");       
       $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
       $io.appendTo('body');
       $("form#CreateAlbumForm",b).submit();
        
//        $.getJSON("http://secure.albums.amazonaws.com:8080/PhotoBook/CreateAlbumServlet?callback=?",{title: strTitle, ids: strContacts, acl: strAcl, description: strDescr, collectionId: strCollId, genreId: strGenreId }, function(data){
//            if(data.status=="200"){                                       
//                div.find("#album").attr("albId", data.albumId).html(data.albumTitle);
//                b.hidejBox();
//            }
//            else{
//                if(data.status=="400"){
//                    $(".jBoxHandler",b).find("#title").html("такой альбом уже существует");
//                    $("input#title",b).addClass("bad");
//                }
//                else
//                    alert("Error creating album");                        
//            }
//
//            $("#cancel",b).removeAttr("disable");
//            $("#progress",b).addClass("hide");                
//        });            
    });

    $("a#addCollection",b).toggle(function(){
        $(this).html("отменить");
        if($("#collections",b).find("#createColl").length>0)
            return false;
        var tempDiv = $("#collections #createCollTempl").clone().attr("id","createColl").removeClass("hide");
        $("input",tempDiv).focus(function(){$("#errorCollection",b).html("");});
        $("#ok1",tempDiv).click(function(){
            var strCollTitle = $("#collections #createColl #collTitle",b).val();
            if(strCollTitle=="")
                return false;
            var arCollections = [];
            $("#collections > #collection",b).each(function(i){ arCollections[i]=$(this).html(); })
            //alert($("#collections > #collection",b).text());
            if($.inArray(strCollTitle, arCollections)>-1){
                $("#errorCollection",b).html("<b>такая коллекция уже существует</b>");
                return false;
            }
            
//            $("#collections > #collection",b).removeClass("selected");
//            $("#collections #createColl",b).replaceWith('<div id="collection" style="width:600px; padding-left:2px" class="selected">'+strCollTitle+'</div>');                    
//            $("#collections > #collection",b).click(function(){ $(this).parents("#collections").find("div[id='collection']").removeClass("selected"); $(this).addClass("selected"); });
//            $("a#addCollection",b).click();
//            $("#collections",b).jScrollPane({showArrows:true, scrollbarWidth: 17});                    
                        
            $.getJSON(pageConf.serverAddres+"CreateCollectionServlet",{title: strCollTitle},function(data){
                if(data.status=="200"){                    
                    $("#collections > #collection",b).removeClass("selected");
                    //$("#collections #createColl #collTitle",b).css("color","#999999").val("добавить новую");
                    $("#collections #createColl",b).replaceWith('<div id="collection" class="selected" val="'+data.id+'">'+data.title+'</div>');                    
                    $("#collections > #collection",b).click(function(){ $(this).parents("#collections").find("div[id='collection']").removeClass("selected"); $(this).addClass("selected"); });
                    $("#collections",b).jScrollPane({showArrows:true, scrollbarWidth: 17}); 
                    var newColl = {collectionId: data.id, collectionTitle: data.title};
                    pageConf.userCollections.push(newColl);
                }
                else{
                    if(data.error=="collection_exists"){
                        $("#errorCollection",b).html("такая коллекция уже существует");
                    }
                    else
                        alert("Ошибка создания коллекции");
                }
            });
            return false;
        });

        $("#collections",b).prepend(tempDiv);
        return false;
    }, function(){
        $(this).html("создать новую");
        $("#collections",b).find("#createColl").remove();
        $("#errorCollection",b).html("создание нового альбома");
    });

    //выбор контактов
    $("a#linkSelect",b).click(function(){  
        $("#contacts",b).find("div[id='contact']:has(:checked)").each(function(){
            var contact = $(this).clone();
            contact.find("input").removeAttr("checked");
            var parentId = $(this).parents("div#group").attr("val");
            var group = $("#selectedContacts",b).find("div[val='"+parentId+"']")[0];
            //если такой группы еще нет, то создаем ее
            if(!group){
                group = $(this).parents("div#group").clone();
                group.find("div[id='contact']").remove();
                group.find("input").removeAttr("checked");
                group.find("input:first").click(function(){
                    if($(this).attr("checked"))
                        $(this).parents("#group").find("input").attr("checked","checked");
                    else
                        $(this).parents("#group").find("input").removeAttr("checked","checked");
                });
                $("#selectedContacts",b).append(group);
            }
            else
                group = $(group);
                
            $(this).remove();
            group.append(contact);
        });
        $("#contacts",b).find("div[id='group']:not(:has(div[id='contact']))").remove();
        
        $("#contacts",b).jScrollPane({showArrows:true, scrollbarWidth: 17});
        $("#selectedContacts",b).jScrollPane({showArrows:true, scrollbarWidth: 17});
        
        if($("#contacts",b).find("div[id='contact']").length==0){
            $("a#selectAll",b).hide();
            $("a#linkSelect img",b).attr("src","images/rg.png");
        }        
        if($("#selectedContacts",b).find("div[id='contact']").length>0){
            $("a#selectAllSelected",b).show();
            if($("a#selectAllSelected",b).attr("clicked")=="true")
                $("a#selectAllSelected",b).click();
            $("a#linkDelete img",b).attr("src","images/lr.png");    
        }
        
        //убираем выделение со всех контактов
        $("#contacts",b).find("input").removeAttr("checked","checked");    
        $("#selectedContacts",b).find("input").removeAttr("checked","checked");    
        //
        //логика отображения ссылки "выбрать всех/отменить всех"
        $("#contacts",b).find("input").click(function(){
            if($("#contacts",b).find("input:checked").length==0)
                if($("a#selectAll",b).attr("clicked")=="true")
                    $("a#selectAll",b).click();
            if($("#contacts",b).find("input").length==$("#contacts",b).find("input:checked").length)
                if($("a#selectAll",b).attr("clicked")=="false")
                    $("a#selectAll",b).click();
        });
        $("#selectedContacts",b).find("input").click(function(){
            if($("#selectedContacts",b).find("input:checked").length==0)
                if($("a#selectAllSelected",b).attr("clicked")=="true")
                    $("a#selectAllSelected",b).click();
            if($("#selectedContacts",b).find("input").length==$("#selectedContacts",b).find("input:checked").length)
                if($("a#selectAllSelected",b).attr("clicked")=="false")
                    $("a#selectAllSelected",b).click();
        });
        
        return false;
    });
    $("a#linkDelete",b).click(function(){            
        $("#selectedContacts",b).find("div[id='contact']:has(:checked)").each(function(){
            var contact = $(this).clone();
            contact.find("input").removeAttr("checked");
            var parentId = $(this).parents("div#group").attr("val");
            var group = $("#contacts",b).find("div[val='"+parentId+"']")[0];
            
            //если такой группы еще нет, то создаем ее
            if(!group){
                group = $(this).parents("div#group").clone();                
                group.find("div[id='contact']").remove();
                group.find("input").removeAttr("checked");
                group.find("input:first").click(function(){            
                    if($(this).attr("checked"))
                        $(this).parents("#group").find("input").attr("checked","checked");        
                    else
                        $(this).parents("#group").find("input").removeAttr("checked","checked");        
                });
                $("#contacts",b).prepend(group);
            }
            else
                group = $(group);
                
            $(this).remove();
            group.append(contact); 
        });
        $("#selectedContacts",b).find("div[id='group']:not(:has(div[id='contact']))").remove();
        
        $("#selectedContacts",b).jScrollPane({showArrows:true, scrollbarWidth: 17});
        $("#contacts",b).jScrollPane({showArrows:true, scrollbarWidth: 17});
        
        if($("#contacts",b).find("div[id='contact']").length>0){
            $("a#selectAll",b).show();
            if($("a#selectAll",b).attr("clicked")=="true")
                $("a#selectAll",b).click();
            $("a#linkSelect img",b).attr("src","images/rr.png");
        }            
        if($("#selectedContacts",b).find("div[id='contact']").length==0){
            $("a#selectAllSelected",b).hide();
            $("a#linkDelete img",b).attr("src","images/lg.png");  
        }            
        
        //убираем выделение со всех контактов
        $("#contacts",b).find("input").removeAttr("checked","checked");    
        $("#selectedContacts",b).find("input").removeAttr("checked","checked");  
        // 
        //логика отображения ссылки "выбрать всех/отменить всех"
        $("#contacts",b).find("input").click(function(){
            if($("#contacts",b).find("input:checked").length==0)
                if($("a#selectAll",b).attr("clicked")=="true")
                    $("a#selectAll",b).click();
            if($("#contacts",b).find("input").length==$("#contacts",b).find("input:checked").length)
                if($("a#selectAll",b).attr("clicked")=="false")
                    $("a#selectAll",b).click();
        });
        $("#selectedContacts",b).find("input").click(function(){
            if($("#selectedContacts",b).find("input:checked").length==0)
                if($("a#selectAllSelected",b).attr("clicked")=="true")
                    $("a#selectAllSelected",b).click();
            if($("#selectedContacts",b).find("input").length==$("#selectedContacts",b).find("input:checked").length)
                if($("a#selectAllSelected",b).attr("clicked")=="false")
                    $("a#selectAllSelected",b).click();
        }); 

        return false;
    });
    Tooltip.dialogInit();
    return false;
}

function createSelectAlbumDlg(div)
{
   
    var b = jBox.open("div-dlgCreateAlbum","div","SelectAlbumDlg","выбрать альбом","width=602,height=190,center=true,draggable=true,model=true");
    $("iframe#jBox_hideIframe").css("z-index","5");
    $(".jBoxHandler div",b).remove();
    //$("#albumCreationStatus").removeClass("hide");
    $("#cancel",b).click(function(){ b.hidejBox();});
    $("#ok",b).click(function(){        
         
	 var selAlbum = $("div.selected").find("#title").html();
	//var selAlbum = $("#albums").find("div.selected").find("#title").html();
        
        $("#album").attr("albId", $("div.selected").attr("val"));
        var textLengthBefore = $("#album").width();
        $("#album").val(selAlbum );
        $("#album").width(textLengthBefore);
	b.hidejBox();
    });
	
	$("#ok",b).attr("disabled","true");
	zwsGetJSON("ListUserAlbumsServlet",{},function(data){             
        if(data.status=="401"){
            var newUrl = "login.html?continueUrl=" + window.location;
            window.location = newUrl;
        }            
		pageConf.userAlbums.length = 0;
        for(var i=0; i<data.length; i++)
            pageConf.userAlbums.push(data[i]);		
		
		$("#albums",b).find("table#waitPhotosTable").addClass("hide");	
		//if(data.length>0)
        //	$("#ok",b).removeAttr("disabled");
		
		//заполнение альбомов        
	    if(pageConf.userAlbums.length==0){
	        $("#albums",b).find("table#noPhotosTable").removeClass("hide");
	        return;            
	    }
	    for(var i=0; i<pageConf.userAlbums.length; i++){
	        var albDiv = $("#albums #template",b).clone();
	        albDiv.attr("val", pageConf.userAlbums[i].albumId).attr("id","album").removeClass("hide");
	        $("#title",albDiv).html((pageConf.userAlbums[i].albumTitle.length>gAlbumTitleLenghth)?pageConf.userAlbums[i].albumTitle.substr(0,gAlbumTitleLenghth)+"...":pageConf.userAlbums[i].albumTitle );
	        $("#photoNum",albDiv).html(String(pageConf.userAlbums[i].numPhotos));
	        if(pageConf.userAlbums[i].acl=="public")
	            $("#acl",albDiv).html("<img src='img/unlock_mini.gif' alt='доступный всем'/>");
	        if(pageConf.userAlbums[i].acl=="private")
	            $("#acl",albDiv).html("<img src='img/lock_mini.gif' alt='закрытый'/>");
	        $("#creationDate",albDiv).html(getReadableDate(pageConf.userAlbums[i].dateCreated, false));
	        $("#albums",b).append(albDiv);
	    }        
			
	    $("#albums > #album",b).click(function(){ $(this).parents("#albums").find("div[id='album']").removeClass("selected"); $(this).addClass("selected"); $("#ok",b).removeAttr("disabled");});
	    $("#albums > #album",b).dblclick(function(){ $(this).parents("#albums").find("div[id='album']").removeClass("selected"); $(this).addClass("selected"); $("input#ok",b).click(); });
	    var albId = $("#album",div).attr("albId");		
		if(albId!="-1"){
			$("#albums",b).find("div[val='"+albId+"'][id='album']").addClass("selected");		
			$("#ok",b).removeAttr("disabled");
		}
	
	    $("#albums",b).jScrollPane({showArrows:true, scrollbarWidth: 17});
    });
}

function setFileName(fileName)
{
  
        $("#photoTitle").html(fileName);
    
}

function setFileId(div, photoId)
{
    //var div = $("#uploadContainer iframe[name='"+iframeName+"']").parents(".form");
    div.attr("photoId", photoId);      
    div.find("div#uploadCompleteMessage").find("a#photoview").attr("href","photoview.html#pid="+photoId);
    //var href = div.find("div#uploadCompleteMessage").find("a#photoedit").attr("href");
    //div.find("div#uploadCompleteMessage").find("a#photoedit").attr("href",href + photoId);
}

//сохранение информации о файле. Возможно только после загрузки самой фотки
function saveFileInfo(div)
{
    
    var strPhotoId = $("#iphotoId").val();        
    var strAlbumID = $("#album").attr("albId");
    
    var strTitle = $("#photoName").val();
    var strDescr = $("#photoDescr").val();
    var strTags = $("#photoTags").val();

    if(strPhotoId=="-1")
        return false;
    
    /*$("form#savePhotoInfoForm",div).find("input#pid").val(strPhotoId);
    $("form#savePhotoInfoForm",div).find("input#albumId").val(strAlbumID);
    $("form#savePhotoInfoForm",div).find("input#title").val(strTitle);
    $("form#savePhotoInfoForm",div).find("input#description").val(strDescr);
    $("form#savePhotoInfoForm",div).find("input#tags").val(strTags);
    var $io = $("<iframe id='saveInfoIframe' name='saveInfoIframe'/>");       
    $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
    $io.appendTo('body');    
    $("form#savePhotoInfoForm",div).submit();*/
    zwsPostJSON("CreatePhotoServlet",{ pid: strPhotoId, albumId: strAlbumID, title: strTitle , description: strDescr, tags: strTags },function(data){
		
		if(data.status=="205"){
			alert("Описание к фото не было сохранено - были найдены запрещенные слова.");				    		
		}
	});
}

function savePhotoInfoCallback(data){
    if(data.status!="200")
        alert("Ошибка сохранения описания к фото");
    
    setTimeout(function() {
        $("iframe#saveInfoIframe").remove();        
    }, 100);
}

function createAlbumCallback(data)
{
    var b = $("div#jbdiv-dlgCreateAlbum");
    if(data.status=="200"){                                               
        //$("div.form").find("#album").attr("albId", data.albumId).html(data.title); 
		$("#album").attr("albId" , data.albumId);
		$("#album").val(data.title);
        var newAlbum = {numPhotos: 0, albumId: data.albumId, albumTitle: data.title, acl: data.acl};
        //pageConf.userAlbums.push(newAlbum);
        b.hidejBox();
    }
    else{
        if(data.status=="400"){
            $(".jBoxHandler",b).find("#title").html("такой альбом уже существует");
            $("input#title",b).addClass("bad");
        }
        else
            alert("Error creating album");                        
    }

    $("#cancel",b).removeAttr("disable");
    $("#albumCreationStatus").addClass("hide");
    setTimeout(function() {
        $("iframe#createAlbumIframe").remove();        
    }, 100);
}

function uploadComplete(resp, status, form)//iframeName, params)
{
    if(!form) 
        return;
    
    var div = form.parents(".form");//$("#uploadContainer iframe[name='"+iframeName+"']").parents(".form");
    var strPhotoId = div.attr("photoId"); 
	var strTitle = $("input#photoTitle",div).attr("value");
	var strAlbumID = div.find("#album").attr("albId");    
    $("#progress",div).addClass("hide");
    div.find("#uploadMessage").addClass("hide");
    div.find("#uploadCompleteMessage").removeClass("hide");
    
    div.find("#cancel").attr("disabled","true");
    
    div.attr("uploaded","yes");
    if(div.attr("infoFilled")=="yes")
        saveFileInfo(div);
	else{
		zwsGetJSON("CreatePhotoServlet",{pid: strPhotoId, albumId: strAlbumID, title: strTitle, description: "", tags: ""},function(data){});
	}

}
/* ###################################################################### */
/***************************** MAKE UPLOAD ****************************/


$(document).ready(function(){
	
         $("#cancelUpload").attr("disabled", true);
         
                $("#uploadNow").click(function(){
				
					var PregAlbumId = $("#album").attr("albId");
				    if (PregAlbumId == "-1")
					{
						alert("Выберите альбом");
						return;
					}
					
	                $("#uploadProgressIndicator").removeClass("hide");       
	                $("#cancelUpload").attr("disabled", false);
	                $("#cancelUpload", div).click(function(){ 
			        if(confirm("Вы действительно хотите отменить загрузку фото?")){
			            $("#uploadProgressIndicator").addClass("hide");    
			            $("#progress",div).addClass("hide"); 
			            div.find("div#uploadMessage").addClass("hide");            
			            div.find("div#uploadForm").addClass("hide");
			            div.find("div#uploadCancel",div).removeClass("hide");
			            $(this).attr("disabled","true");
			            $('#tab-container ul',div).tabsClick(1);
			            $('#tab-container ul',div).tabsDisable(2); 
			            
			            var iframe = $("iframe[name^='jqFormIO']");            
			            if(iframe.length==0) return false;
			            var io;
			            if(window.frames[iframe.attr("name")])
			                io = window.frames[iframe.attr("name")];
			            else
			                io = iframe[0];
			            
			            if($.browser.msie){               
			                var doc = io.document;
			                doc.execCommand('Stop');
			            }
			
			            setTimeout(function() {
			                iframe.remove();                
			            }, 50);            
			            
			        }
			        return false;
		   	 });
               var div = $(this).parents(".form");
               
               if($("input[name='file']",div).val()==""){
                   alert("Выберите файл");
                   return false;
               }
               
               if(div.find("#album").attr("albId")==-1){
                   //alert("Выберите альбом");
                   return false;
               }
                       
               
                 var filePath = $("input[name='file']").attr("value"), title="";
                 var i = filePath.lastIndexOf(".");        
                 if(i>0){            
                 if(MIMEType(filePath.substr(i+1))==false){
                         alert("Запрещенный тип файла!\nРазрешены файлы только формата jpeg и gif");
                         $("#fileUploadForm")[0].reset();
                         return false;
                 }
                 else{
                         $("#fileUploadForm input[name='Content-Type']",div).attr("value", MIMEType(filePath.substr(i+1)));
                         var n = filePath.lastIndexOf("\\");
		 if(n==0)
                         n = filePath.lastIndexOf("/");
                 if(n>0)
                         title = filePath.substr(n+1);
                 else
                         title = filePath;                            
                 }            
                 }
                 setFileName(title);
                 $("#uploadPhotoTitle").html(title);
              
                
                
            var gPhotoId = "-1";
            var gAlbumId = $("#album").attr("albId");
	   
	    var redirect = "http://www.zigzagz.net/messageDispatcher.html";
	    var callback = "uploadComplete";
	    
            $("#fragment-1 .uploadInnerBlock").addClass("hide");
            $("#fragment-1 .uploadMessage").removeClass("hide");
            $('#uploadContainer div > ul').tabsEnable(2);
	    zwsGetJSON("ArchiveUploadSignerServlet",
			{
				wm: checkboxStatus == 1,
				wmt: $("#watermarkform input[name='wmText']", div).val(),
				wmp: $("#watermarkform #wmPosition", div).val(),		
				albumId: gAlbumId, redirect: redirect, callback:callback
			},
			function(dt) {
		   
	           if(dt.status=="200"){    
			   	                       
	               $("#fileUploadForm input[name='policy']").attr("value",dt.policy);
	               $("#fileUploadForm input[name='signature']").attr("value",dt.signature);
	               $("#fileUploadForm input[name='acl']").attr("value",dt.acl);
	               $("#fileUploadForm input[name='key']").attr("value",dt.key);
	               $("#fileUploadForm input[name='success_action_redirect']").attr("value",dt.success_action_redirect);
	               $("#fileUploadForm input[name='file']").removeAttr("disabled");
	               $("#fileUploadForm div#fakefile").remove();                              
	               //alert($("#fileUploadForm",div).html());
	               var opt = {
	                   success: uploadComplete
	                };
	               $("#fileUploadForm").ajaxSubmit(opt);              
	               
	               $("#iphotoId").val(dt.photoId);
	           }
	           else{
	                alert("error");
	           }
	    });
		
		return false;
	});
});

function uploadComplete(resp, status, form)//iframeName, params)
{
    $("#uploadProgressIndicator").addClass("hide");
    if(!form) 
        return;
        photoUploadComplete = true;
        //DescriptionSave();
       
	$("#fragment-1 .uploadMessage").addClass("hide");
        $("#fragment-1 .uploadCompleteMessage").removeClass("hide");
        $("#uploadAgain").click(function()
                                {
                                        
                                         uploadAgain();       
                                         
                                }
                                )
}
function uploadAgain()
{
         $("#fragment-1 .uploadInnerBlock").removeClass("hide");
         $("#fragment-1 .uploadCompleteMessage").addClass("hide");
         
         
         $("#iphotoId").val("");
         $("#inputfileElementID").html('<input type="file" name="file" style="width:515px;" />');
         $("#photoName").val("");
         $("#photoTags").val("");
         $("#photoDescr").val("");
}
function DescriptionSave()
{
         if (!photoUploadComplete)
         return;
         
         var gPhotoId = $("#iphotoId").val();
         $("#photoedit").attr("href" , $("#photoedit").attr("href")+gPhotoId );
         var gAlbumId = $("#album").attr("albId");
         var title = $("#photoName").val();
         var pTags = $("#photoTags").val();
         var pDescr = $("#photoDescr").val();
         title = title ? title : "Без названия";         
         zwsGetJSON("CreatePhotoServlet",{pid: gPhotoId, albumId: gAlbumId, title: title , description: pDescr, tags: pTags},function(data){
		
		if(data.status=="205"){
			alert("Описание к фото не было сохранено - были найдены запрещенные слова.");				    		
		}
	});
         
}
 