/* Zenphoto administration javascript. */

function confirmDeleteAlbum(url, message1, message2) {
        if (confirm(message1)) {
                if (confirm(message2)) {
                        window.location = url;
                }
        }
}

function confirmDeleteImage(url, message) {
        if (confirm(message)) {
                window.location = url;
        }
}

function addUploadBoxes(placeholderid, copyfromid, num) {
        var placeholder = document.getElementById(placeholderid);
        var copyfrom = document.getElementById(copyfromid);
        for (i=0; i<num; i++) {
                if (window.totalinputs >= 50) return;
                var newdiv = document.createElement('div');
                newdiv.innerHTML = copyfrom.innerHTML;
                newdiv.className = copyfrom.className;
                placeholder.parentNode.insertBefore(newdiv, placeholder);
                window.totalinputs++;
        }
}

function albumSwitch(sel, unchecknewalbum, msg1, msg2) {
        var selected = sel.options[sel.selectedIndex];
        var albumtext = document.getElementById("albumtext");
        var publishtext = document.getElementById("publishtext");
        var albumbox = document.getElementById("folderdisplay");
        var titlebox = document.getElementById("albumtitle");
        var checkbox = document.getElementById("autogen");
        var newalbumbox = sel.form.newalbum;
        var folder = sel.form.folder;
        var exists = sel.form.existingfolder;

        if (selected.value == "") {
                newalbumbox.checked = true;
                newalbumbox.disabled = true;
                newalbumbox.style.display = "none";
        } else {
                if (unchecknewalbum) {
                        newalbumbox.checked = false;
                }
                newalbumbox.disabled = false;
                newalbumbox.style.display = "";
        }

        var newalbum = selected.value == "" || newalbumbox.checked;
        if (newalbum) {
                albumtext.style.display = "block";
                publishtext.style.display = "block";
                albumbox.value = "";
                folder.value = "";
                titlebox.value = "";
                exists.value = false;
                checkbox.checked = true;
                document.getElementById("foldererror").style.display = "none";
                toggleAutogen("folderdisplay", "albumtitle", checkbox);
        } else {
                albumtext.style.display = "none";
                publishtext.style.display = "none";
                albumbox.value = selected.value;
                folder.value = selected.value;
                titlebox.value = selected.text;
                exists.value = true;
        }
        validateFolder(folder, msg1, msg2);
}


function contains(arr, key) {
        for (i=0; i<arr.length; i++) {
                if (arr[i].toLowerCase() == key.toLowerCase()) {
                        return true;
                }
        }
        return false;
}

function updateFolder(nameObj, folderID, checkboxID, msg1, msg2) {
        var autogen = document.getElementById(checkboxID).checked;
        var folder = document.getElementById(folderID);
        var parentfolder = document.getElementById('albumselectmenu').value;
        if (parentfolder != '') parentfolder += '/';
        var name = nameObj.value;
        var fname = "";
        var fnamesuffix = "";
        var count = 1;
        if (autogen && name != "") {
                fname = name;

                fname = fname.replace(/[ÀÁÂÄÃÅàáâãå]/g, 'a');
                fname = fname.replace(/[Çç]/g, 'c');
                fname = fname.replace(/[ÈÉÊËèéêë]/g, 'e');
                fname = fname.replace(/[ÌÍÎÏìíîï]/g, 'i');
                fname = fname.replace(/[ÒÓÔÕØòóôõø]/g, 'o');
                fname = fname.replace(/[ŒœÖö]/g, 'oe');
                fname = fname.replace(/[Šš]/g, 's');
                fname = fname.replace(/[ÙÚÛùúû]/g, 'u');
                fname = fname.replace(/[Üü]/g, 'ue');
                fname = fname.replace(/[ÝŸýÿ]/g, 'y');
                fname = fname.replace(/ß/g, 'ss');
                fname = fname.replace(/[?æä]/g, 'ae');
                fname = fname.replace(/[ÐðÞþ]/g, 'd');
                fname = fname.replace(/[Ññ]/g, 'n');

                fname = fname.toLowerCase();
                fname = fname.replace(/[\!@#$\%\^&*()\~`\'\"]/g, "");
                fname = fname.replace(/^\s+|\s+$/g, "");
                fname = fname.replace(/[^a-zA-Z0-9]/g, "-");
                fname = fname.replace(/--*/g, "-");
                while (contains(albumArray, parentfolder + fname + fnamesuffix)) {
                        fnamesuffix = "-"+count;
                        count++;
                }
        }
        folder.value = parentfolder + fname + fnamesuffix;
        validateFolder(folder, msg1, msg2);
}

function validateFolder(folderObj, msg1, msg2) {
        var errorDiv = document.getElementById("foldererror");
        var exists = document.uploadform.existingfolder.value != "false";
        var uploadBoxesDiv = document.getElementById("uploadboxes");
        var folder = folderObj.value;
        if (!exists && albumArray && contains(albumArray, folder)) {
                errorDiv.style.display = "block";
                errorDiv.innerHTML = msg1;
                uploadBoxesDiv.style.display = "none";
                return false;
        } else if ((folder == "") || folder.substr(folder.length-1, 1) == '/') {
                errorDiv.style.display = "block";
                errorDiv.innerHTML = msg2;
                uploadBoxesDiv.style.display = "none";
                return false;
        } else {
                errorDiv.style.display = "none";
                errorDiv.innerHTML = "";
                uploadBoxesDiv.style.display = "block";
                return true;
        }
}

function toggleAutogen(fieldID, nameID, checkbox) {
        var field = document.getElementById(fieldID);
        var name = document.getElementById(nameID);
        if (checkbox.checked) {
                window.folderbackup = field.value;
                field.disabled = true;
                updateFolder(name, fieldID, checkbox.id);
        } else {
                if (window.folderbackup && window.folderbackup != "")
                        field.value = window.folderbackup;
                        field.disabled = false;
        }
}


// Checks all the checkboxes in a group (with the specified name);
function checkAll(form, arr, mark) {
        for (i = 0; i <= form.elements.length; i++) {
                try {
                        if(form.elements[i].name == arr) {
                                form.elements[i].checked = mark;
                        }
                } catch(e) {}
        }
}

function triggerAllBox(form, arr, allbox) {
        for (i = 0; i <= form.elements.length; i++) {
                try {
                        if(form.elements[i].name == arr) {
                                if(form.elements[i].checked == false) {
                                        allbox.checked = false; return;
                                }
                        }
                }
                catch(e) {}
        }
        allbox.checked = true;
}


function toggleBigImage(id, largepath) {
        var imageobj = document.getElementById(id);
        if (!imageobj.sizedlarge) {
                imageobj.src2 = imageobj.src;
                imageobj.src = largepath;
                imageobj.style.position = 'absolute';
                imageobj.style.zIndex = '1000';
                imageobj.sizedlarge = true;
        } else {
                imageobj.style.position = 'relative';
                imageobj.style.zIndex = '0';
                imageobj.src = imageobj.src2;
                imageobj.sizedlarge = false;
        }
}


function updateThumbPreview(selectObj) {
        if (selectObj) {
                var thumb = selectObj.options[selectObj.selectedIndex].style.backgroundImage;
                selectObj.style.backgroundImage = thumb;
        }
}

function update_direction(obj, element) {
        if((obj.options[obj.selectedIndex].value == 'Manual') || (obj.options[obj.selectedIndex].value == '')) {
                document.getElementById(element).style.display = 'none';
                }
        else {
                document.getElementById(element).style.display = 'block';
        }
}

// Uses jQuery
function image_deleteconfirm(obj, id, msg) {
        toggleMoveCopyRename(id, '');
        if (confirm(msg)) {
                jQuery('#deletemsg'+id).show();
                obj.checked = true;
        }
}

// Uses jQuery
// Toggles the interface for move/copy (select an album) or rename (text
// field for new filename) or none.
function toggleMoveCopyRename(id, operation) {
        if (operation == '') {
                jQuery('#'+id+'-movecopydiv').hide();
                jQuery('#'+id+'-renamediv').hide();
                jQuery('#deletemsg'+id).hide();
                jQuery('#'+id+'-move').attr('checked',false);
                jQuery('#'+id+'-copy').attr('checked',false);
                jQuery('#'+id+'-rename').attr('checked',false);
                jQuery('#'+id+'-Delete').attr('checked',false);
        } else if (operation == 'movecopy') {
                jQuery('#'+id+'-movecopydiv').show();
                jQuery('#'+id+'-renamediv').hide();
		jQuery('#'+id+'-Delete').attr('checked',false);
		jQuery('#deletemsg'+id).hide();
	} else if (operation == 'rename') {
		jQuery('#'+id+'-movecopydiv').hide();
		jQuery('#'+id+'-renamediv').show();
		jQuery('#'+id+'-Delete').attr('checked',false);
		jQuery('#deletemsg'+id).hide();
	}
}

function toggleAlbumMoveCopyRename(prefix, operation) {
	if (operation == '') {
		jQuery('#a-'+prefix+'movecopydiv').hide();
		jQuery('#a-'+prefix+'renamediv').hide();
		jQuery('#a-'+prefix+'move').attr('checked',false);
		jQuery('#a-'+prefix+'copy').attr('checked',false);
		jQuery('#a-'+prefix+'rename').attr('checked',false);
	} else if (operation == 'movecopy') {
		jQuery('#a-'+prefix+'movecopydiv').show();
		jQuery('#a-'+prefix+'renamediv').hide();
	} else if (operation == 'rename') {
		jQuery('#a-'+prefix+'movecopydiv').hide();
		jQuery('#a-'+prefix+'renamediv').show();
	}
}

// Toggles the extra info in the admin edit and options panels.
function toggleExtraInfo(id, category, show) {
	var prefix = '';
	if (id != null && id != '') {
		prefix = '#'+category+'-'+id+' ';
	}
	if (show) {
		jQuery(prefix+'.'+category+'extrainfo').show();
		jQuery(prefix+'.'+category+'extrashow').hide();
		jQuery(prefix+'.'+category+'extrahide').show();
	} else {
		jQuery(prefix+'.'+category+'extrainfo').hide();
		jQuery(prefix+'.'+category+'extrashow').show();
		jQuery(prefix+'.'+category+'extrahide').hide();
	}
}



