﻿var currentPageName = "";

$(document).ready(function(){
    /* ----------------------------------------------------------------------------------------------------------- 
    MENU INSTELLEN
    -------------------------------------------------------------------------------------------------------------- */
    
    setSelectedMenuItem();
    
    /* ----------------------------------------------------------------------------------------------------------- 
    HELPTEKST
    -------------------------------------------------------------------------------------------------------------- */    
    
    $("#helpTekst").hide();
    
    $(".helpLink").click(function() {
        $("#helpTekst").slideToggle("slow");
    });
   
    
    /* ----------------------------------------------------------------------------------------------------------- 
    IE 6 FIXES
    -------------------------------------------------------------------------------------------------------------- */
    
    if ($.browser.msie) {
        if  (navigator.appVersion.indexOf("MSIE 6.0") != -1) {
            $('img[@src$=.png]').ifixpng(); // transparent png fix
            
            $('.gridOverview tr').hover(function() {
                $(this).addClass('rowOver');
                }, function() {
                $(this).removeClass('rowOver');
            });
            
            $('.tableOverview td').hover(function() {
                $(this).addClass('columnOver');
                }, function() {
                $(this).removeClass('columnOver');
            });
            
//            $(".Button").hover(function(){
//               $(this).removeAttr("class");
//               $(this).attr("class", "ButtonOver");
//               
//            }, function(){
//               $(this).removeAttr("class");
//               $(this).attr("class", "Button");
//            });  

            $(".largeButton .title").hover(function(){
               $(this).removeAttr("class");
               $(this).attr("class", "titleOver");
               
            }, function(){
               $(this).removeAttr("class");
               $(this).attr("class", "title");
            });              
        }
    }
    
//    $('.Button').hover(function() {
//        $(this).find("img").attr("src", "images/button-over.png");
//        $(this).find("img").ifixpng();
//    }, function() {
//        $(this).find("img").attr("src", "images/button.png");
//        $(this).find("img").ifixpng();
//    });


    
//    
//    /* ----------------------------------------------------------------------------------------------------------- 
//    REQUIREMENTS BIJ LOGIN PAGE
//    -------------------------------------------------------------------------------------------------------------- */
//    if (window.location.href.indexOf("login") != -1) {
//        var errorShown = false;

//        
//        $("#requirement1").attr("src", "images/tick.png");
//        $("#requirement1").attr("alt", "ja");
//        
//        if (window.screen.width > 1024) {
//            $("#requirement2").attr("src", "images/tick.png");
//            $("#requirement2").attr("alt", "ja");
//        }
//        else {
//            errorShown = true;
//        }
//        
//        $("#requirement3").attr("src", "images/tick.png");
//        $("#requirement3").attr("alt", "ja");    
//        
//        
//        if (errorShown) {
//            $('#helpFunction').toggle();    
//        }
//    }
//    
    /* ----------------------------------------------------------------------------------------------------------- 
    OVERZICHT VAN DE GROEPEN/CONTACTEN INSTELLEN
    -------------------------------------------------------------------------------------------------------------- */ 
    
    $('#contacts .invisible').hide(); // alles verbergen
    
    $('#groupsAndContacts .openClose').click(function(e) {
        $(this).parent().next('div').slideToggle('fast');
        
        if ($(this).html().indexOf("open") != -1) {
            $(this).html("sluit groep");
        }
        else {
            $(this).html("open groep");
        }
        
    });
    
    $('input[@type*=checkbox]').click(function() {
        // We doen deze controle omdat anders bij het toevoegen van een contact / groep hij ook direct alle onderliggende
        // selecteert.
        if ($("#ctl00_cphBody_ctlGroepen_hiddenEnableAutoSelecting").length > 0) {
            if ($("#ctl00_cphBody_ctlGroepen_hiddenEnableAutoSelecting").val() == "true") {
                if ($(this).attr("name").toLowerCase().indexOf("dynamiccontact") == -1) {
                    var arrName = $(this).attr("id").split("_");
                    var groepName = arrName[arrName.length - 1];
                    var onOrOff = $(this).attr("checked");
                     
                    $('input[@name*=' + groepName + '_]').each(function() { //underscore moet erbij, anders wordt "groep46" ook geselecteerd wanneer "groep4" aangeklikt wordt, zelfs als is die geen subgroep
                        if (onOrOff == true) {
                            $(this).attr("checked", "true");
                        }
                        else {
                            $(this).attr("checked", "");
                        }
                    });
                }
            }
        }
    });
    
    /* ----------------------------------------------------------------------------------------------------------- 
    CLIENT SIDE CLICK EVENT HANDLERS
    -------------------------------------------------------------------------------------------------------------- */ 
    
    $('#templatesList tr').click(function() {
        setSelectedItem($(this).attr("title"), $(this).attr("id"), this);
        
        $(this).find('input').attr('checked', 'true');    
    });

    $('#ctl00_cphBody_contactList tr').click(function() {
        setSelectedItemContact($(this).attr("title"), $(this).attr("id"), this);
        
       $(this).find('input').attr('checked', 'true');
    });    
    
    $('#ctl00_cphBody_gvEdities tr').click(function() {
        setSelectedItem($(this).attr("title"), $(this).attr("id"), this);
        
        $(this).find('input').attr('checked', 'true');
    });
    
        $('#ctl00_cphBody_gvVerstuurd tr').click(function() {
        setSelectedItem($(this).attr("title"), $(this).attr("id"), this);
        
        $(this).find('input').attr('checked', 'true');
    });
    
    //handmatig "gridviewrowid" enzo bijzetten, zodat de value van de hiddenfield enkel een integer bevat (voor rest van code anders aanpassing nodig)
    function setSelectedItem(hiddenField, waarde, eventObject) {
        if ($("#" + hiddenField).length > 0) {
            //$("#gridviewrowid" + $("#" + hiddenField).val()).removeAttr("class"); // Verwijderen huidige geselecteerde
            $("#" + $("#" + hiddenField).val()).removeAttr("class"); // Verwijderen huidige geselecteerde
            //$("#" + hiddenField).val(waarde.replace("gridviewrowid", ""));
            $("#" + hiddenField).val(waarde);
            $(eventObject).attr("class", "rowSelected");  
        }
    }
    
    //handmatig "gridviewrowid" enzo bijzetten, zodat de value van de hiddenfield enkel een integer bevat (voor rest van code anders aanpassing nodig)
    function setSelectedItemContact(hiddenField, waarde, eventObject) {
        if ($("#" + hiddenField).length > 0) {
            $("#contactrowid" + $("#" + hiddenField).val()).removeAttr("class"); // Verwijderen huidige geselecteerde
            $("#" + hiddenField).val(waarde.replace("contactrowid", ""));
            $(eventObject).attr("class", "rowSelected");  
        }
    }
    
    enableTemplateClick();          // AANPASSEN als er meerdere templates bijkomen.   
});

/* ----------------------------------------------------------------------------------------------------------- 
MENU INSTELLEN
-------------------------------------------------------------------------------------------------------------- */

function setSelectedMenuItem()
{
    var url = window.location.href.toLowerCase();
    var home = new Array("", "default.aspx"); //fix: lege string voor het geval 'Default.aspx' niet in link staat
    var edities = new Array("manage_editions.aspx", "list_editions.aspx", "add_edition.aspx", "edit_edition.aspx", "send_editions.aspx");
    var contact = new Array("manage_contacts.aspx", "list_contacts.aspx", "add_contact.aspx", "edit_contact.aspx");
    var contactGroups = new Array("manage_groups.aspx", "list_groups.aspx", "add_group.aspx", "edit_group.aspx", "import_export.aspx");
    var stats = new Array("manage_statistics.aspx", "list_statistics.aspx");
    var images = new Array("manage_images.aspx", "list_images.aspx", "add_image.aspx");
    var files = new Array("manage_files.aspx", "list_files.aspx", "add_file.aspx");
    
    var arrPages = [home, edities, contactGroups, contact, stats, images, files]; // pagina namen ...
    var arrItems = ["Home", "Edities", "ContactGroups","Contacts", "Statistieken", "Images", "Files"]; // ... met bijhorende id's (van de li's) om dan bijhorende icoon op selected te zetten.
    var url_array = url.split("/");
    
    for(var i=0; i < (arrPages.length); i++) {
        for (var j=0; j < arrPages[i].length; j++) {
            var temp = arrPages[i];
            
            if (temp[j] == url_array[(url_array.length) - 1]) {
                $("#" + arrItems[i] + " a").removeClass();
                $("#" + arrItems[i] + " a").addClass("selected");
                currentPageName = arrItems[i];
            }
        }
    } 
} 

/* ----------------------------------------------------------------------------------------------------------- 
TOON ALLES / VERBERG ALLES / SELECTEER ALLES / DESELECTEER ALLES
-------------------------------------------------------------------------------------------------------------- */ 

function toggleInvisibleGroups() {    
    if ($("#toggleVisible").text().indexOf("open") != -1) {
        $("#toggleVisible").text("sluit alle groepen");    
        $(".invisible").show();
        $(".openClose").each(function() {
            $(this).html("sluit groep");
        });
    }
    else {
        $("#toggleVisible").text("open alle groepen");    
        $(".invisible").hide();
        $(".openClose").each(function() {
            $(this).html("open groep");
        });        
    }
}

function toggleSelect(todo, type, linkId) {
    // todo = selecteren of deselecteren
    // type = radiobuttons of checklists
    
    var textBoxReminder = "";
    
    if (type == "checkbox") {
        $("input[@type=" + type + "]").each(function() {
            // Ophalen in welke hiddenfield we de waarden moeten steken
            if (!($(this).attr("title") == null)) {
		        textBoxReminder = $(this).attr("title");
		    }
		    
            this.checked = todo;
		    //labelElement = crir.findLabel(this.getAttributeNode('id').value);
		    
		    if (todo == true) {
		        //labelElement.className = type + "_checked";
                var currentSelected = $(textBoxReminder).val();
                $(textBoxReminder).val(currentSelected + "|" + $(this).attr("id"));		        
		    }
		    else {
		        //labelElement.className = type + "_unchecked";
		    } 
        });
        
        if (todo == true) {
            $(linkId).text("alles deselecteren"); 
            $(linkId).attr("onclick", "toggleSelect(false, \"" + type + "\", \"" + linkId + "\"); return false;");
            $(linkId).attr("href", "javascript:toggleSelect(false, \"" + type + "\", \"" + linkId + "\");"); /* frikkin' IE 6 */
        }
        else {
            $(linkId).text("selecteer alles"); 
            $(linkId).attr("onclick", "toggleSelect(true, \"" + type + "\", \"" + linkId + "\"); return false;");
            $(linkId).attr("href", "javascript:toggleSelect(false, \"" + type + "\", \"" + linkId + "\");"); /* frikkin' IE 6 */
            // We moeten maar 1 keer het hiddenfield met de waarden leeg zetten. Daarom plaatsen we het buiten de each.
            $(textBoxReminder).val("");
        }
    }
    else {
        alert("U kan slechts 1 item selecteren.");
    }
}

function enableTemplateClick() {
    if ($(document).find('#template1')) {
        $("#template1").click(function(){
           $(this).removeAttr("class");
           $(this).attr("class", "titleOver");
           
        }, function(){
           $(this).removeAttr("class");
           $(this).attr("class", "title");
        });        
    }
}

/* ----------------------------------------------------------------------------------------------------------- 
VALIDATIE FORMS
-------------------------------------------------------------------------------------------------------------- */ 

function validateForm(arrayNumber) {
    var url, ok_color, error_color, i, postForm, error_messages, ok_messages;
    
	error_messages = "<img class=\"titleIcon\" src=\"images/error.png\" alt=\"error\" /><div class=\"title\"></div><div class=\"text\"><ol>";                    
	ok_messages = "<fieldset class=\"ok\"><legend>Uw formulier wordt nu verstuurd </legend><ol><li>- alle velden zijn correct verstuurd </li></ol></fieldset>";
    error_class = "TextBoxLargeError";
	ok_class = "TextBoxLargeRequired";
	postForm = true;
	var fields;
	
	switch(arrayNumber) { // arrayNumber duidt aan welke stap we zitten, dus welke velden we moeten checken.
        case 'login':
            var login = new Array("txtUsername", "textbox", "u heeft uw <strong>login</strong> niet ingevuld");
            var password = new Array("txtPassword","textbox", "u heeft uw <strong>paswoord</strong> niet ingevuld");
            fields = new Array(login, password);
            break;
        case 'nieuwsbriefnaam':
	        var nieuwsbriefnaam = new Array("ctl00_cphBody_txtNaam", "textbox", "u heeft <strong> geen nieuwsbriefnaam </strong> ingevuld");
	        fields = new Array(nieuwsbriefnaam);
	        break;
        case 'groepsnaam':
	        var groepsnaam = new Array("ctl00_cphBody_txtNaam", "textbox", "u heeft <strong> geen groepsnaam </strong> ingevuld");
	        var interessecode = new Array("ctl00_cphBody_txtCode", "textbox", "u heeft <strong> geen (unieke) interessecode </strong> ingevuld");
	        fields = new Array(groepsnaam, interessecode);
	        break;        
        case 'contactgegevens':
            var naam = new Array("ctl00_cphBody_txtNaam", "textbox", "u heeft <strong>geen naam</strong> ingevuld");
            var voornaam = new Array("ctl00_cphBody_txtVoornaam", "textbox", "u heeft <strong>geen voornaam</strong> ingevuld");
            var email = new Array("ctl00_cphBody_txtEmail", "email", "u heeft <strong>geen (of een verkeerde) email</strong> ingevuld");
            fields = new Array(naam, voornaam, email);
            break;
//        case 'selectedparent': //niet meer in gebruik
//	        var selectedparent = new Array("ctl00_cphBody_txtSelectedParent","textbox", "u heeft <strong>geen niveau</strong> gekozen");
//	        fields = new Array(selectedparent);
//	        break;
	    case 'selectedtemplate':
	        var selectedtemplate = new Array("ctl00_cphBody_hdnSelectedTemplate", "textbox", "u heeft <strong>geen sjabloon</strong> gekozen voor uw nieuwsbrief");
	        fields = new Array(selectedtemplate);
	        break;
	    case 'selectededition':
	        var selectededition = new Array("ctl00_cphBody_hdnSelectedEdition", "textbox", "u hebt <strong>geen selectie</strong> gemaakt");
	        fields = new Array(selectededition);
	        break;
	    case 'selectedsession':
	        var selectedsession = new Array("ctl00_cphBody_hdnSelectedSession", "textbox", "u hebt <strong>geen selectie</strong> gemaakt");
	        fields = new Array(selectedsession);
	        break;
	    case 'selectedcontact':
	        var selectedcontact = new Array("ctl00_cphBody_hdnSelectedContact", "textbox", "u moet eerst <strong>een contactpersoon</strong> selecteren");
	        fields = new Array(selectedcontact);
	        break; 
        case 'selectedcontacts':
            var selectedcontacts = new Array("ctl00_cphBody_hdnSelectedContacts", "textbox", "U moet <strong>minstens 1 contactpersoon</strong> selecteren");
            fields = new Array(selectedcontacts);
            break;
//        case 'selectedgroup':
//            var selectedgroup = new Array("ctl00_cphBody_hdnSelectedGroup", "textbox", "u heeft <strong>geen groep</strong> gekozen");
//            fields = new Array(selectedgroup);
//            break;
        case 'selectedgroups':
            var selectedgroups = new Array("ctl00_cphBody_hdnSelectedGroups", "textbox", "U moet <strong>minstens 1 groep</strong> selecteren");
            fields = new Array(selectedgroups);
            break;
	}
	    
    for(i = 0; i < fields.length; i++) {
        var temp = fields[i];
		//$("#" + temp[0]).removeAttr("class");        
		
        switch(temp[1])
        {
            case "textbox":
                if ($("#" + temp[0]).val().length < 1) {
					$("#" + temp[0]).addClass(error_class);
					error_messages += "<li>" + temp[2] + "</li>";
                    postForm = false;
                }
                else {
                    $("#" + temp[0]).attr("class", ok_class);
                    
                    //OPLOSSEN
                    // ALS PARENT = 0 is dan werkt deze validate niet meer!
                    /*if ($("#" + temp[0]).val() == "0") { // als chosentemplate 0 is hebben ze nog geen gekozen!
                        $("#" + temp[0]).addClass(error_class);
                        error_messages += "<li>" + temp[2] + "</li>";
                        postForm = false;
                    }
                    else {
                        $("#" + temp[0]).addClass(ok_class);
                    }*/
                }
            break;
            
            case "datum":
				if ($("#" + temp[0]).val().length < 8) {   
					$("#" + temp[0]).addClass(error_class);     
					error_messages += "<li> - uw <strong>" + $("#" + temp[0]).attr("title") + "</strong> is niet het correcte formaat </li>";					              
                    postForm = false;
                }
                else {
                    if (isDate(document.getElementById(temp[0]))) {
                        $("#" + temp[0]).addClass(ok_class);
                    }
                    else {
						$("#" + temp[0]).addClass(error_class);     
						error_messages += "<li> - uw <strong>" + $("#" + temp[0]).attr("title") + "</strong> is niet het correcte formaat </li>";					              
	                    postForm = false;
                    }
                }
            break;
            
            case "email":          
                if (!validateEmail(document.getElementById(temp[0]).value)) {         
					$("#" + temp[0]).addClass(error_class);     
					error_messages += "<li> - uw <strong>" + $("#" + temp[0]).attr("title") + "</strong> is niet het correcte formaat </li>";					              
                    postForm = false;                     
                }
                else {
                    $("#" + temp[0]).attr("class", ok_class);
                }
            break;
            
            case "username":
                if (document.getElementById(temp[0]).value.length < 6) {
                    document.getElementById(temp[1]).innerHTML = "*"; 
                    document.getElementById(temp[0]).style.backgroundColor = error_color; 
                    postForm = false;  
                }
                else {
                    document.getElementById(temp[1]).innerHTML = "";   
                    document.getElementById(temp[0]).style.backgroundColor = ok_color;
                }
            
            break;
            
            case "password":
                
            break;
        }
    }
	
	if (postForm) {
		//$("#messages").html(ok_messages);
	}
	else {
	    $("#ctl00_cphBody_messages").removeAttr("class");
	    $("#ctl00_cphBody_messages").addClass("errorNotification");
		$("#ctl00_cphBody_messages").html(error_messages + "</ol></div><div class=\"footer\"></div>");
	}
    
    return postForm;
}

function validateEmail(strEmail) {
    var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
    var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
   
  	if (!reg1.test(strEmail) && reg2.test(strEmail)) { // if syntax is valid
    	return true;
  	}
  	else {
  	    return false;
  	}
}

/* ----------------------------------------------------------------------------------------------------------- 
AJAX
-------------------------------------------------------------------------------------------------------------- */ 

function getAllImages() {
    // We werken met jQuery AJAX en niet met .NET omdat PageMethods blijkbaar problemen geven als de call vanuit een
    // user control komt.
    var strURL = "ajax.aspx?function=getAllImages";
    
    req = $.ajax({
        url: strURL,
        type: 'GET',
        error: function(){
            alert("<p><strong> There was a problem, please try again </strong></p>"); 
        },
        success: function(result){    
            $("#imagesList").html(result);
        }
    });

    if ($("#imagesList").length > 0) {
        $("#imagesList").html("<p><img src=\"images/ajax.gif\" alt=\"\" /> bezig met ophalen lijst fotos... </p>");
    }
}

//function OnSucceeded(result, userContext, methodName) {
//    if ($("#imagesList").length > 0) {
//        $("#imagesList").html(result);
//    }
//}

//function OnFailed(error, userContext, methodName) {
//    $("#imagesList").html("error");
//}

function setImageEditor(imageNaam) {
    $("#nicImageURL").val("upload/Image/" + imageNaam);
}

//functies voor custom browsers
function SelectImage(fileUrl, fileWidth, fileHeight, fileAlt)
{
    window.opener.SetUrl(fileUrl, fileWidth, fileHeight, fileAlt);
    window.close();
}    

function SelectFile(fileUrl)
{
    window.opener.SetUrl(fileUrl);
    window.close();
} 

function FillVan(id, naam) {
    document.getElementById("ctl00_cphBody_txtvan").value = id;
    document.getElementById("ctl00_cphBody_lblvan").innerHTML = naam;
    document.getElementById("ctl00_cphBody_txtnaar").value = "";
}

function FillNaar(id, naam) {
    document.getElementById("ctl00_cphBody_txtnaar").value = id;
    document.getElementById("ctl00_cphBody_lblnaar").innerHTML = naam;
}
