// JavaScript Document
// Bevat alla javascript code voor de siteEditor (achterkant)

function onClientLoad(editor, args) {

    var style = editor.get_contentArea().style;
    style.backgroundColor = "white";
    style.backgroundImage = "none";
    style.color = "black";

    if ($telerik.isFirefox) {
        var contentArea = editor.get_contentAreaElement();
        contentArea.style.height = 400 + 'px';
        editor._getTextIframe().style.height = 400 + 'px';
    }
} 


// Klap kinderen uit als tak wordt uitgevinkt
function seRolesTreeClientNodeChecked(sender, eventArgs)
{
    var node = eventArgs.get_node();  

    if (node.get_checked())
    {
        if (node.get_nodes().get_count())
        {
            seCheckChildNodes(node, true);
        }
        node.collapse();
    }
    else
    {

        try
        {
            node.get_parent().uncheck(); 
        }
        catch(e)
        { 
            // nothing
        }
        
        try
        {
            node.get_parent().get_parent().uncheck(); 
        }
        catch(e)
        { 
            // nothing
        }
        
        if (node.get_nodes().get_count())
        {
            seCheckChildNodes(node, false);
        }
        
        node.expand();
        
        if (node.get_value() == "seIedereen")
        {
            // Dit is de iedereen node die uitgechecked wordt
            // dus editors aanvinken en 't extranet uitklappen
            var siblingsCount = node.get_nodes().get_count();
 
            for (var nodeIndex = 0; nodeIndex < siblingsCount; nodeIndex++)
            {
                var siblingNode = node.get_nodes().getNode(nodeIndex);
                if (siblingNode.get_value() == "Editors")
                {
                    siblingNode.check();
                    siblingNode.collapse(); 
                    seCheckChildNodes(siblingNode, true);
                } 
                else 
                {
                    siblingNode.expand();
                }
            }
        }
    }
}

function seRoleTreeSelect(sender, eventArgs)
{
    eventArgs.set_cancel(true);
}

// Check of uncheck alle kinderen
function seCheckChildNodes(node, checked)
{
    var siblingsCount = node.get_nodes().get_count();
 
    for (var nodeIndex = 0; nodeIndex < siblingsCount; nodeIndex++)
    {
        var siblingNode = node.get_nodes().getNode(nodeIndex);
        if (checked)
            siblingNode.check(); 
        else
            siblingNode.uncheck(); 
            
        if (siblingNode.get_nodes().get_count())
        {
            seCheckChildNodes(siblingNode, checked);
        }
    }
}

/*
* --------------------------- siteMap contextMenu ---------------------------
*/

function seSiteMapContextMenuClick(sender, eventArgs)
{                
    var node = eventArgs.get_node();
    var item = eventArgs.get_menuItem();
    if (item.get_text() == "Bewerk naam")
    {
        node.startEdit();
        // cancel the server event
        eventArgs.set_cancel(true);
        // close the menu
        item.get_menu().hide();    
    }
                
    return true;
}

/**
* --------------------------- TEXT GIF -------------------------------
*/

function seAfbeeldingTreeClientMouseOver(sender, eventArgs)
{
   var node = eventArgs.get_node();    
   var myDiv = document.getElementById("myDiv");
   alert("OnClientMouseOver: " + node.get_value());
}


function textEditorGifError(textGif)
{
    textGif.src = "/editor/seResource/seImages/seTextGifLoading.gif";
    
    pathParts = textGif.src.split("/"); 
    textGif.src = "/editor/seMaakTextGif.ashx?filename=" + pathParts[pathParts.length-1] + 
        "&text=" + textGif.alt + "&width=" + textGif.width + "&height=" + textGif.height + textGif.name;
    textGif.onerror = null;
}

var seTextGifTimerRunning1 = 0;
var seTextGifObj1 = new Array();

function textGifError(textGif)
{
    textGif.src = "/editor/seResource/seImages/seTextGifLoading.gif";
    textGif.onerror = null;
    
    seTextGifObj1.push(textGif);   
    if (!seTextGifTimerRunning1) 
    {
        seTextGifTimerRunning1 = setTimeout("textGifErrorDo()", 10);
    } 
}

function textGifErrorDo()
{
    textGif = seTextGifObj1.shift();
    if (textGif != null)
    {
        pathParts = textGif.src.split("/"); 
        textGif.src = "/editor/seMaakTextGif.ashx?filename=" + 
            pathParts[pathParts.length-1] + "&text=" + textGif.alt + "&width=" + 
            textGif.width + "&height=" + textGif.height + textGif.name;
        
        clearTimeout(seTextGifTimerRunning1);
        seTextGifTimerRunning1 = setTimeout("textGifErrorDo()", 250);
    } else {
        seTextGifTimerRunning1 = null;
    } 
}

var seTextGifTimerRunning = 0;
var seTextGifObj = new Array();
var seTextGifUniek = new Array();

function textGifError2(textGif, uniek)
{
    textGif.src = "/editor/seResource/seImages/seTextGifLoading.gif";  
    //textGif.src = "/editor/seMaakTextGif.ashx?uniek2=" + uniek + "&rnd=" + (Math.random()*10000);
    textGif.onerror = null;
    
    seTextGifObj.push(textGif);
    seTextGifUniek.push(uniek);
    
    if (!seTextGifTimerRunning) 
    {
        seTextGifTimerRunning = setTimeout("textGifError2Do()", 10);
    }   
}

function textGifError2Do()
{
    textGif = seTextGifObj.shift();
    uniek = seTextGifUniek.shift();
    if (textGif != null)
    {
        textGif.src = "/editor/seMaakTextGif.ashx?uniek2=" + uniek + "&rnd=" + (Math.random()*10000);
        clearTimeout(seTextGifTimerRunning);
        seTextGifTimerRunning = setTimeout("textGifError2Do()", 250);
    } else {
        seTextGifTimerRunning = null;
    } 
}

function urlDecode(str){
    str=str.replace(new RegExp('\\+','g'),' ');
    return unescape(str);
}
function urlEncode(str){
    str=escape(str);
    str=str.replace(new RegExp('\\+','g'),'%2B');
    return str.replace(new RegExp('%20','g'),'+');
}

/**
* --------------------------- seAfbeelding -------------------------------
*/

var seAfbeeldingTimerRunning = 0;
var seAfbeeldingObj = new Array();

function seAfbeeldingError(seAfbeelding)
{
    seAfbeelding.onerror = null;
    seAfbeelding.src = "/editor/seResource/seImages/sePlaceHolderImage.gif";
   
    seAfbeeldingObj.push(seAfbeelding);
    if (!seAfbeeldingTimerRunning) 
    {
        seAfbeeldingTimerRunning = setTimeout("seAfbeeldingenTimedLoad()", 10);
    }
}

function seAfbeeldingenTimedLoad(myTel)
{      
    myAf = seAfbeeldingObj.shift();
    if (myAf != null)
    {
        myAf.src = "/editor/seMaakAfbeelding.ashx?" + myAf.name;
        clearTimeout(seAfbeeldingTimerRunning);
        seAfbeeldingTimerRunning = setTimeout("seAfbeeldingenTimedLoad()", 500);
    } else {
        seAfbeeldingTimerRunning = null;
    } 
}


// ------------------------------ Crop Image ------------------------------------

    var seDraging = new seDragingCL();
    var seRubberBandLijnObj;
    var seRubberBandVlakObj;
    var seTumbImg;
    var seCropAfWidth = 0;
    var seCropAfHeight = 0;
    var seCropVlakWidth = 0;
    var seCropVlakHeight = 0;
    var seCropLeftBoxObj;
    var seCropTopBoxObj;
    var seCropWidthBoxObj;
    var seCropHeightBoxObj;
    var seCropIsInit = false;
    var seCroptPassInfo;
    var seNulPuntX = 0;
    var seNulPuntY = 0;
    var seCropResizeVlakObj;
    var seNepCropResizeVlakObj;
    var seCropDestWidth = 0;
    var seCropDestHeight = 0;
    
    var seFreeSize = false; // 
    
    // returns an object that represents the absolute position of element obj
    function findPos(obj)
    {
        // return a "point" for ease of use...
        return { x: findPosX(obj), y: findPosY(obj) }; 
    }
    
    // from Quirksmode
function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
    
    // returns an object that represents the position relative to
    // popupOrigin that event e occurred.
    function sePoint(e)
    {	
        if (e.pageX || e.pageY)
	    {
		    this.x = e.pageX;
		    this.y = e.pageY;
	    }
	    else if (e.clientX || e.clientY)
	    {
	        // need to use both document.body and document.documentElement to cater for various
	        // combinations of IE 5/6 in normal and quirksmode
		    this.x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		    this.y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	    }
		
	    // give the point position relative to the popup
    }
    
    function seDragingCL()
    {
        this.seOffsetX = 0;
        this.seOffsetY = 0;
        this.seSubOffsetX = 0;
        this.seSubOffsetY = 0;
        this.seDragModus = "stop"
    }


function seFindCropInfo(what) {
    for(i=0;i<seCroptPassInfo.length;i++) {
        if (seCroptPassInfo[i][0] == what) {
            return seCroptPassInfo[i][1];
        }
    }
    
    return "";
}

// Init de crop afbeelding zaken
function seCropInitImageScale(passInfo)
{
    seCropIsInit = true;
    
    seCroptPassInfoObj = document.getElementById(passInfo)
    if (seCroptPassInfoObj != null)
    {
       seCroptPassInfo = eval("new Array(" + seCroptPassInfoObj.value + ")");

    seCropRubberBandVlak = seFindCropInfo("seCropRubberBandVlak");
    if (seCropRubberBandVlak != null)
    {
        seRubberBandVlakObj = document.getElementById(seCropRubberBandVlak);
        if (seRubberBandVlakObj != null)
        {
            seRubberBandVlakObj.ondrag = function(){return false;} 
        } else {
            seCropIsInit = false;
        }
    }
    
    seCropRubberBandLijn = seFindCropInfo("seCropRubberBandLijn");
    if (seCropRubberBandLijn != null)
    {
        seRubberBandLijnObj = document.getElementById(seCropRubberBandLijn);
        if (seRubberBandLijnObj != null) {
            seRubberBandLijnObj.ondrag = function(){return false;} 
        } else {
            seCropIsInit = false;
        }
    }
    
    seNepCropResizeVlak = seFindCropInfo("seCropNepResizeVlak");
    if (seNepCropResizeVlak != null)
    {
        seNepCropResizeVlakObj = document.getElementById(seNepCropResizeVlak);
        if (seNepCropResizeVlakObj != null) {
            seNepCropResizeVlakObj.ondrag = function(){return false;} 
            seNepCropResizeVlakObj.style.visibility = "visible";
        } else {
            seCropIsInit = false;
        }
    }
    
    seCropResizeVlak = seFindCropInfo("seCropResizeVlak");
    if (seCropResizeVlak != null)
    {
        seCropResizeVlakObj = document.getElementById(seCropResizeVlak);
        if (seCropResizeVlakObj != null) {
            seCropResizeVlakObj.ondrag = function(){return false;} 
            seCropResizeVlakObj.style.visibility = "visible";
        } else {
            seCropIsInit = false;
        }
    }
    
    seCropRubberTumbImg = seFindCropInfo("seCropRubberTumbImg");
    if (seCropRubberTumbImg != null)
    {
        seTumbImg = document.getElementById(seCropRubberTumbImg);
        if (seTumbImg != null)
        {
            seTumbImg.ondrag = function(){return false;} 
            
            seNulPuntX = findPos(seTumbImg).x;
            seNulPuntY = findPos(seTumbImg).y;
        } else {
            seCropIsInit = false;
        }
    }
    
    seCropWidthBox = seFindCropInfo("seCropWidthBox");
    if (seCropWidthBox != null)
    {
        seCropWidthBoxObj = document.getElementById(seCropWidthBox);
        if (seCropWidthBoxObj != null)
        {
            seCropWidthBoxObj.ondrag = function(){return false;}
        } else {
            seCropIsInit = false;
        }
    }
    
    seCropDestWidth = seFindCropInfo("seCropDestWidth");
    seCropDestHeight = seFindCropInfo("seCropDestHeight");
    
    seCropHeightBox = seFindCropInfo("seCropHeightBox");
    if (seCropHeightBox != null)
    {
        seCropHeightBoxObj = document.getElementById(seCropHeightBox);
        if (seCropHeightBoxObj != null)
        {
        } else {
            seCropIsInit = false;
        }
    }
    
    seCropLeftBox = seFindCropInfo("seCropLeftBox");
    if (seCropLeftBox != null)
    {
        seCropLeftBoxObj = document.getElementById(seCropLeftBox);
        if (seCropLeftBoxObj != null)
        {
            seCropLeftBoxObj.ondrag = function(){return false;}
        } else {
            seCropIsInit = false;
        }
    }
    
    seCropTopBox = seFindCropInfo("seCropTopBox");
    if (seCropTopBox != null)
    {
        seCropTopBoxObj = document.getElementById(seCropTopBox);
        if (seCropTopBoxObj != null)
        {
            seCropTopBoxObj.ondrag = function(){return false;}
        } else {
            seCropIsInit = false;
        }
    }
	
    } else {
        seCropIsInit = false;

    }
    
    if (seRubberBandVlakObj != null && seNepCropResizeVlakObj != null && seCropResizeVlakObj != null)
    {
    	    seCropVlakLeft = Math.round(seRubberBandVlakObj.style.left.replace("px", ""));
            seCropVlakTop = Math.round(seRubberBandVlakObj.style.top.replace("px", ""));
                
            seCropVlakWidth = Math.round(seRubberBandVlakObj.style.width.replace("px", ""));
            seCropVlakHeight = Math.round(seRubberBandVlakObj.style.height.replace("px", ""));
                
            seNepCropResizeVlakObj.style.left = 
                         (seCropVlakLeft + seCropVlakWidth - 13) + "px";
            seNepCropResizeVlakObj.style.top = 
                         (seCropVlakTop + seCropVlakHeight - 13) + "px";
                         
            seCropResizeVlakObj.style.left = 
                         (seCropVlakLeft + seCropVlakWidth - 13) + "px";
            seCropResizeVlakObj.style.top = 
                         (seCropVlakTop + seCropVlakHeight - 13) + "px";
    }
    
    document.onmousemove = seMove;
    document.onmouseup = seUp;
    document.onmousedown = seDown;
      
    document.ondrag = function() {return false;} 
}

function seDragMe(dragWhat, CropAfWidth, CropAfHeight, passInfo, e)
{	
	
    dragWhat = document.getElementById(dragWhat);
	
	seCropAfWidth = CropAfWidth;
    seCropAfHeight = CropAfHeight;
    
    seCropInitImageScale(passInfo);

    if (seCropIsInit)
    {
        if (seDraging.seDragModus == "stop") {
			
            if (!e) e = window.event;
            downPoint = new sePoint(e);
            
            seDraging.seOffsetX = findPos(dragWhat).x - downPoint.x ;
	        seDraging.seOffsetY = findPos(dragWhat).y - downPoint.y; 
    	    	            
            seDraging.seDragModus = "dragging";
            seDraging.seObject = dragWhat;     
        }
    }
    else
    {
        // seDebugWriteLine("seCropInit mislukt", "seDragMeDoIt");
    }
}

function seMove(e)
        {
            var seEvent = e;
            
            if (!seEvent) seEvent = window.event;
	        var currentPoint = new sePoint(seEvent);	
            
            if (seDraging.seDragModus == "dragging") 
            {           
                newLeft = currentPoint.x - seNulPuntX + seDraging.seOffsetX; //+ seDraging.seSubOffsetX;
                newTop  = currentPoint.y - seNulPuntY + seDraging.seOffsetY; //+ seDraging.seSubOffsetY;
                
                vlakWidth = seDraging.seObject.style.width.replace("px", "");
                vlakHeigh = seDraging.seObject.style.height.replace("px", "");

                lijnCor = 4;
                
                if (seCropResizeVlakObj.id == seDraging.seObject.id)
                {
                    lijnCor = 0;

					if (newLeft < 0) newLeft = 0;
                    if (newTop < 0)  newTop  = 0;
                }
                else
                {
                    if (0 > newLeft) newLeft = 0;
                    if (0 > newTop)  newTop  = 0;
                }
                
                if (newLeft > seTumbImg.width - vlakWidth - lijnCor) newLeft = 
                                   seTumbImg.width - vlakWidth - lijnCor;
                if (newTop > seTumbImg.height - vlakHeigh - lijnCor) newTop = 
                                   seTumbImg.height - vlakHeigh - lijnCor;
                 
                
                seDraging.seObject.style.left = newLeft + "px";
                seDraging.seObject.style.top  = newTop  + "px";
                   
                seCropVlakLeft = Math.round(seDraging.seObject.style.left.replace("px", ""));
                seCropVlakTop = Math.round(seDraging.seObject.style.top.replace("px", ""));
                
                seCropVlakWidth = Math.round(seRubberBandVlakObj.style.width.replace("px", ""));
                seCropVlakHeight = Math.round(seRubberBandVlakObj.style.height.replace("px", ""));
                             
                if (seCropResizeVlakObj.id != seDraging.seObject.id)
                {
                    seCropResizeVlakObj.style.left = 
                         (seCropVlakLeft + seCropVlakWidth - 13) + "px";
                    seCropResizeVlakObj.style.top = 
                         (seCropVlakTop + seCropVlakHeight - 13) + "px";
					
                }
                else
                {
					
                    verhouding = seCropDestHeight / seCropDestWidth;
                    newWidth = findPos(seCropResizeVlakObj).x - findPos(seRubberBandVlakObj).x + 13;
                    if (newWidth < 60) newWidth = 60;

                    if (seFreeSize)
                        newHeight = findPos(seCropResizeVlakObj).y - findPos(seRubberBandVlakObj).y + 13;
                    else
                        newHeight = newWidth * verhouding;
                    
                    if ((findPos(seRubberBandVlakObj).y + newHeight - seNulPuntY + 4) > seTumbImg.height) 
                    {
                         newHeight = Math.abs(findPos(seRubberBandVlakObj).y - seNulPuntY - seTumbImg.height + 4);                         newWidth = newHeight / verhouding; 
                    } 
                    
                    seRubberBandVlakObj.style.width = newWidth+"px"; 
                    seRubberBandVlakObj.style.height = newHeight+"px";   
                    
                }
                
                seCropVlakLeft = Math.round(seRubberBandVlakObj.style.left.replace("px", ""));
                seCropVlakTop = Math.round(seRubberBandVlakObj.style.top.replace("px", ""));
                
                seCropVlakWidth = Math.round(seRubberBandVlakObj.style.width.replace("px", ""));
                seCropVlakHeight = Math.round(seRubberBandVlakObj.style.height.replace("px", ""));
                
                seNepCropResizeVlakObj.style.left = 
                         (seCropVlakLeft + seCropVlakWidth - 13) + "px";
                seNepCropResizeVlakObj.style.top = 
                         (seCropVlakTop + seCropVlakHeight - 13) + "px";
                
                if (seRubberBandLijnObj != null)
                {
                    seRubberBandLijnObj.style.left   = seRubberBandVlakObj.style.left;
                    seRubberBandLijnObj.style.top    = seRubberBandVlakObj.style.top;
                    seRubberBandLijnObj.style.width  = seRubberBandVlakObj.style.width;
                    seRubberBandLijnObj.style.height = seRubberBandVlakObj.style.height;
                }
                
                if (seCropResizeVlakObj.id != seDraging.seObject.id)
                {
                    realLeft = newLeft * (seCropAfWidth / seTumbImg.width);
                    realTop = newTop * (seCropAfHeight / seTumbImg.height);
                    
                    if (realLeft < 0) realLeft = 0;
                    if (realTop < 0) realTop = 0;
                
                    seCropLeftBoxObj.value = Math.round(realLeft);
                    seCropTopBoxObj.value  = Math.round(realTop);
                } else {
                    realWidth  = Math.round(seRubberBandVlakObj.style.width.replace("px", "")) * 
                                        (seCropAfWidth / seTumbImg.width);
                    realHeight = Math.round(seRubberBandVlakObj.style.height.replace("px", "")) * 
                                        (seCropAfHeight / seTumbImg.height);
                    
                    seCropWidthBoxObj.value = Math.round(realWidth);
                    seCropHeightBoxObj.value  = Math.round(realHeight);
                }
            }
        }
        
        function seUp(e)
        {
            var seEvent = e;
	        if (!seEvent) seEvent = window.event;
	        downPoint = new sePoint(seEvent);
	        seDraging.seDragModus = "stop";
	        
	        seCropVlakLeft = Math.round(seRubberBandVlakObj.style.left.replace("px", ""));
            seCropVlakTop = Math.round(seRubberBandVlakObj.style.top.replace("px", ""));
                
            seCropVlakWidth = Math.round(seRubberBandVlakObj.style.width.replace("px", ""));
            seCropVlakHeight = Math.round(seRubberBandVlakObj.style.height.replace("px", ""));
                
            seNepCropResizeVlakObj.style.left = 
                         (seCropVlakLeft + seCropVlakWidth - 13) + "px";
            seNepCropResizeVlakObj.style.top = 
                         (seCropVlakTop + seCropVlakHeight - 13) + "px";
                         
            seCropResizeVlakObj.style.left = 
                         (seCropVlakLeft + seCropVlakWidth - 13) + "px";
            seCropResizeVlakObj.style.top = 
                         (seCropVlakTop + seCropVlakHeight - 13) + "px";
	    }
        
        function seDown(e)
        {   
            var seEvent = e;
	        if (!seEvent) seEvent = window.event;
	        downPoint = new sePoint(seEvent);
	    }

/* ---------------------------------------- Wacht incoonje ------------------------------------ */

function seWaitIconOnClick(hideItem, showItem)
{
    document.getElementById(hideItem).style.display = "none";  
    document.getElementById(showItem).style.display = "inline";   
}

function seWaitIconOnClickLos(showItem, show)
{
    if (show == false)
    {
        document.getElementById(showItem).style.display = "none";  
    } else {
        document.getElementById(showItem).style.display = "inline";   
    }
}

/* ---------------------------------------- Roles --------------------------------------------- */

function seUpdateAllChildren(nodes, checked)
{
	var i;
	for (i=0; i<nodes.length; i++)
	{
		if (checked) 
		{        
			if (nodes[i].Enabled) nodes[i].Check();  
		}       
		else  
		{      
		    if (nodes[i].Enabled) nodes[i].UnCheck(); 
	    }
         
		if (nodes[i].Nodes.length > 0) seUpdateAllChildren(nodes[i].Nodes, checked);        
	}
}

function seClientNodeChecked(sender, eventArgs)
{
   var childNodes = eventArgs.get_node().get_nodes();
   var isChecked = eventArgs.get_node().get_checked();
   UpdateAllChildren(childNodes, isChecked);
}

// Check alle nodes zodat parent 
function seAfterCheck(node)
{
	if (!node.Checked && node.Parent != null)
	{
		node.Parent.UnCheck();    
	}
         
	var siblingCollection = (node.Parent != null) ? node.Parent.Nodes : node.TreeView.Nodes;
         
	var allChecked = true;
	for (var i=0; i<siblingCollection.length; i++)
	{
		if (!siblingCollection[i].Checked)
		{
			allChecked = false;
			break;
		}
	}
                    
	if (allChecked && node.Parent != null)
	{
		node.Parent.Check();
	}
             
	seUpdateAllChildren(node.Nodes, node.Checked);
}

function seFixPop()
{
    try
    {
        Type.registerNamespace('Telerik.Web.UI.Calendar');
        if (window.Telerik.Web.UI.Calendar.Popup)
            window.Telerik.Web.UI.Calendar.Popup.zIndex = 30000; 
    }
    
    catch(err)
    {
        //Nothing
    }
}


/**
* ----------------------- AJAX -------------------------
*/

// Toont in siteEditor pagina een div boven aan de pagina tijden AJAX callbacks
// om aan te geven dat de pagina bezig is

// ---------------------- site Editor pagina Ajax settings

var seAjaxMessageBlend = 0;
var seAjaxMessageBlendTo = 0;
var seAjaxMessageBlendDoTo = 0;
var seAjaxMessageWait = 0;

// De upload module van RAD werkt niet met ajax
// daarom ajax cancele als er op de upload
// knop geklikt wordt
// Q2
function seUploadRadCancelEvent(sender, eventArgs)
{
    if (eventArgs.get_eventTarget() == "editbestandsnaam$seUploadAfbeeldingBtn")
    {
        eventArgs.set_enableAjax(false);
    }
    
    seSetAjaxMessage('start');
}

function seSetAjaxMessage(send) {
   
    //document.getElementById("SeHeader1_lblStatus").innerHTML = "even geduld...";
    if (send == "start") {
        document.getElementById("SeHeader1_ajaxStatusPaneel").style.visibility = "visible";
        seAjaxMessageBlendTo = 100;
        seAjaxMessageWait = 75; // wacht even voor het tonen van even geduld ding...
        doSetAjaxMessageBlend();
        seMM_swapImage('SeHeader1_workingIcon','','seResource/seImages/seLoading.gif',0);
        document.body.style.cursor = "wait";
    } 
    if (send == "end") {
        seAjaxMessageBlendTo = 0;
        sseAjaxMessageWait = 2;
        doSetAjaxMessageBlend();
        seMM_swapImage('SeHeader1_workingIcon','','seResource/seImages/spacer.gif',0);
        document.body.style.cursor = "default";
    }
}

function doSetAjaxMessageBlend()  
{        
    if (seAjaxMessageWait > 0 )
    {
        seAjaxMessageWait--;
    } else {
        seAjaxMessageBlendDoTo = seAjaxMessageBlendTo;
    }
    seAjaxMessageBlend  = seAjaxMessageBlend  + (seAjaxMessageBlendDoTo - seAjaxMessageBlend )/(5.1);
    
    if (Math.abs(seAjaxMessageBlend - seAjaxMessageBlendTo) > 5) {
        setTimeout("doSetAjaxMessageBlend()", 10); 
    } else {
        seAjaxMessageBlend = seAjaxMessageBlendTo;
        if (seAjaxMessageBlend == 0)
        {
            document.getElementById("SeHeader1_ajaxStatusPaneel").style.visibility = "hidden";
        }
    }
    
    Z_ChangeOpac("SeHeader1_ajaxStatusPaneel", seAjaxMessageBlend);
}

// ------------------- Elementen scripts ---------------------------------

function seLinkShowHide(popUp, iDiv, eDiv, mailDiv) 
{
    if (popUp.value == "Intern") {
        MM_showHideLayers(iDiv,     '','show');
        Z_Menu_getStyleObject(iDiv).height = "auto";
        MM_showHideLayers(eDiv,     '','hide');
        Z_Menu_getStyleObject(eDiv).height = "1px";
        MM_showHideLayers(mailDiv,  '','hide');
        Z_Menu_getStyleObject(mailDiv).height = "1px";
    } else if (popUp.value == "Extern") {
        MM_showHideLayers(iDiv,     '','hide');
        Z_Menu_getStyleObject(iDiv).height = "1px";
        MM_showHideLayers(eDiv,     '','show');
        Z_Menu_getStyleObject(eDiv).height = "auto";
        MM_showHideLayers(mailDiv,  '','hide');
        Z_Menu_getStyleObject(mailDiv).height = "1px";
    } else if (popUp.value == "Geen link") {
        MM_showHideLayers(iDiv,     '','hide');
        Z_Menu_getStyleObject(iDiv).height = "1px";
        MM_showHideLayers(eDiv,     '','hide');
        Z_Menu_getStyleObject(eDiv).height = "1px";
        MM_showHideLayers(mailDiv,  '','hide');
        Z_Menu_getStyleObject(mailDiv).height = "1px";
    } else {
        MM_showHideLayers(iDiv,     '','hide');
        Z_Menu_getStyleObject(iDiv).height = "1px";
        MM_showHideLayers(eDiv,     '','hide');
        Z_Menu_getStyleObject(eDiv).height = "1px";
        MM_showHideLayers(mailDiv,  '','show');
        Z_Menu_getStyleObject(mailDiv).height = "auto";
    }
}


// ------------------- Page (template) Ajax Settings ---------------------

var timeOutTimer;

function seSetPageAjaxMessage(send) {

    if (send == "start") {
        document.getElementById("seLoadingPanel").style.visibility = "visible";
        seAjaxMessageBlendTo = 100;
        seAjaxMessageWait = 75; // wacht even voor het tonen van even geduld ding...
        doSetAjaxMessageBlendPage();

        // Zet loading icoon aan in info panel
        seMM_swapImage('workingIcon','','editor/seResource/seImages/seLoading.gif',0);
        seMM_swapImage('ctl05_workingIcon2','','editor/seResource/seImages/seLoading.gif',0);
        document.body.style.cursor = "wait";
        
        // Geen een timeout bericht als het telang duurt
        // timeOutTimer = setTimeout("sePageAjaxTimeOut()", 30000);
    } 
    if (send == "end") {
        clearTimeout(timeOutTimer);
        seAjaxMessageBlendTo = 0;
        seAjaxMessageBlendDoTo = 0;
        seAjaxMessageWait = 2;
        doSetAjaxMessageBlendPage();
        
        // Zet loading icoon weer uit in info panel
        seMM_swapImage('workingIcon','','editor/seResource/seImages/seInfoPijl.gif',0);
        seMM_swapImage('ctl05_workingIcon2','','editor/seResource/seImages/spacer.gif',0);
        document.body.style.cursor = "default";
    }
}

function sePageAjaxTimeOut()
{
    clearTimeout(timeOutTimer);
    var answer = confirm("Er zijn netwerk problemen (Timeout). Wilt u de pagina opnieuw laden?")
    if (answer) window.location.href=window.location.href;
}

function doSetAjaxMessageBlendPage()  
{
    if (seAjaxMessageWait > 0 )
    {
        seAjaxMessageWait--;
    } else {
        seAjaxMessageBlendDoTo = seAjaxMessageBlendTo;
    }
    seAjaxMessageBlend  = seAjaxMessageBlend  + (seAjaxMessageBlendDoTo - seAjaxMessageBlend )/(5.1);

    if (Math.abs(seAjaxMessageBlend - seAjaxMessageBlendTo) > 5) {
        setTimeout("doSetAjaxMessageBlendPage()", 10); 
    } else {
        seAjaxMessageBlend = seAjaxMessageBlendTo;
        if (seAjaxMessageBlend == 0)
        {
            document.getElementById("seLoadingPanel").style.visibility = "hidden";
        }
    }
    
    Z_ChangeOpac("seLoadingPanel", seAjaxMessageBlend);
    
}



/**
* ----------------------------------------------------
*/

function Z_Menu_setDivHeight(theDiv, the_height)
{
  var the_style = Z_Menu_getStyleObject(theDiv);
  if (document.layers)
  {
    the_style.height = the_height;
  }
  else 
  {
    the_style.height = the_height + "px";
  }
} 

function Z_Menu_getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its
    if(document.getElementById && document.getElementById(objectId)) {
        // W3C DOM
        return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
        // MSIE 4 DOM
        return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
        // NN 4 DOM.. note: this won't find nested layers
        return document.layers[objectId];
    } else {
        return false;
    }
} // Z_Menu_getStyleObject

/**
* seScrollToElement scrolt de pagina naar het actieven element minus een offset
* wordt geactiveerd in het bewerk element control
*/
function seScrollToElement(what, offx, offy) {
	myCtrl = document.getElementById(what);
	window.scroll(getElementLeftPosition(myCtrl)-offx,getElementTopPosition(myCtrl)-offy);
}

/**
* Basis startup script wordt tijdens het editen elke keer opgeroepen
*/

function seBasisStartup() {
    //sfFocus();
    
    //seCropData = seFindHookInfo("seCrop");
    //if (seCropData != null)
    //{
    //    seCropInitImageScale();
    //}
    
    lastActiveElement = seFindHookInfo("lastActiveElement");
    if (lastActiveElement > 0) {
        seScrollToElement("seElement" + lastActiveElement, 25, 25)
    }
    
    editElement = seFindHookInfo("EditID");
    if (editElement > 0) {
        seScrollToElement("seElement" + editElement, 25, 25)
    }
}

function seFindHookInfo(what) {
    for(i=0;i<seJavaHookArray.length;i++) {
        if (seJavaHookArray[i][0] == what) {
            return seJavaHookArray[i][1];
        }
    }
    
    return "";
}

/**
* returns the absolute top location of an element.
* param: e: element
* return: an integer representing the offset from top.
*/
function getElementTopPosition(e){
	var y=0;
	while(e){
		y+=e.offsetTop+e.clientTop;
		e=e.offsetParent;
	}
	return y;
}

/**
* returns the absolute left location of an element.
* param: e: element
* return: an integer representing the offset from left.
*/
function getElementLeftPosition(e){
	var x=0;
	while(e){
		x+=e.offsetLeft+e.clientLeft;
		e=e.offsetParent;
	}
	return x;
}

// Aangepast versie van MM_swapImgRestore zodat hij alleen terug swapt als 
// de hi plaatje hetzelfde is als het argument hiImage
// wordt gebruikt voor bijvoorbeeld bewerk element 
function seMM_swapImgRestore(hiImage) { //v3.0
     var i,x,a=document.MM_sr; 
     for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) {
        pathParts = x.src.split("/");
        if (pathParts[pathParts.length-1] == hiImage) {
            x.src=x.oSrc;
        }
     }
}

function seMM_swapImage() { //v3.0
  var i,j=0,x,a=seMM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/**
* --------------------------- Een aantal basis functie die meestal gebruikt worden --------------------------------------- 
*/

//change the opacity for different browsers
function Z_ChangeOpac(theDiv, opacity) {
	var object = document.getElementById(theDiv).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";	
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
