/**
 * @author dbr
 */

var servers = new Array();
/*
 * geen afsluitende slash!
 */
servers["productie"] 	= "https://www.teletoets.nl";
servers["stagingtest"] 	= "https://staging-test.teletoets.nl";
servers["stagingkopie"] = "https://staging-kopie.teletoets.nl";
servers["vo"] 			= "https://compass.atos-services.net";
servers["voadmin"] 		= "https://compass.atos-services.net";
servers["sefd"] 		= "https://administratie.teletoets.nl";
servers["associatie"] 	= "https://administratie.teletoets.nl";
servers["dailybuild"] 	= "http://dailybuild";
servers["administratie"]= "https://administratie.teletoets.nl";
servers["minerva"] 		= "https://www.minerva-examens.nl";


function openExam(obj){
	/*
	 * alleen org en exam zijn verplicht, de andere variabelen worden met de volgende default waarden gevuld:
	 */
	
	if(!obj.lang){		obj.lang =	 "nl-NL";}
	if(!obj.module){	obj.module = "0";}
	if(!obj.server){	obj.server = "productie";}
	
	var link = servers[obj.server];
	link += "/portal/startexamen.aspx?";
	link +=	"organisatieid="+obj.org;
	link += "&productid="+obj.exam;
	link += "&index="+obj.module;
	link += "&taal="+obj.lang;
	
	window.open(link,'Toetsvenster','titlebar=no, toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width='+GetWinWidth()+', height='+GetWinHeight()+', left=0, top=0, fullscreen=no');
}

function openAdmin(obj){
	/*
	 * alleen org is verplicht, de andere variabelen worden met de volgende default waarden gevuld:
	 */
	if(!obj.lang){		obj.lang =	 "nl-NL";}
	if(!obj.server){	obj.server = "productie";}
	
	var link = servers[obj.server];
	link += "/administratie/adm_login.aspx?";
	link +=	"organisatieid="+obj.org;
	link += "&taal="+obj.lang;
	
	location.href = link;
	/* vanwege een bug in het opener scherm kan de admin niet geopend worden met een window.open */
}

$(function(){
	/* onderhoudsmededelingen tonen */
	if($("#divMessages").length>0){
		$.ajax({
		  	url: "http://www.toetscentra.nl/messages.php",
			crossDomain: true,
			type: 'GET',
		  	success: function(data){
				$("#divMessages").html($(data.responseText));
				var div = $("#mededelingen")
				var tmpClass =$("#divMessages").attr("class");
		    	$("#divMessages").replaceWith(div);
		    	if(tmpClass){ 
		    		//check for existing styles, copy form original div to new div
		    		$("#mededelingen").attr("class",tmpClass);
		    	}else{
		    		// no existing style, this default style is added:
		    		$("#mededelingen").css({
			    		'font-size' : '11px', 
			    		'border' : '1px solid #dddddd',
			    		'background-color':'#efefef',
			    		'margin-bottom':'10px',
			    		'padding':'10px'
			    	});	
			    	$("#mededelingen h2").css({
			    		'margin':'0px'
			    	});
			    	$("#mededelingen h3").css({
			    		'margin-bottom':'0px'
			    	});
			    	$("#mededelingen p").css({
			    		'margin':'0px'
			    	});
		    	}
			}
		});
	}
});



function GetWinWidth(){
	return window.screen.availWidth-4;
}

function GetWinHeight(){
	if(navigator.userAgent.indexOf('NT 5.1')>0){
		return window.screen.availHeight-61;
	}else{
		return window.screen.availHeight-51;
	}
} 


jQuery.ajax = (function(_ajax){
    
    var protocol = location.protocol,
        hostname = location.hostname,
        exRegex = RegExp(protocol + '//' + hostname),
        YQL = 'http' + (/^https/.test(protocol)?'s':'') + '://query.yahooapis.com/v1/public/yql?callback=?',
        query = 'select * from html where url="{URL}" and xpath="*"';
    
    function isExternal(url) {
        return !exRegex.test(url) && /:\/\//.test(url);
    }
    
    return function(o) {
        
        var url = o.url;
        
        if ( /get/i.test(o.type) && !/json/i.test(o.dataType) && isExternal(url) ) {
            
            // Manipulate options so that JSONP-x request is made to YQL
            
            o.url = YQL;
            o.dataType = 'json';
            
            o.data = {
                q: query.replace(
                    '{URL}',
                    url + (o.data ?
                        (/\?/.test(url) ? '&' : '?') + jQuery.param(o.data)
                    : '')
                ),
                format: 'xml'
            };
            
            // Since it's a JSONP request
            // complete === success
            if (!o.success && o.complete) {
                o.success = o.complete;
                delete o.complete;
            }
            
            o.success = (function(_success){
                return function(data) {
                    
                    if (_success) {
                        // Fake XHR callback.
                        _success.call(this, {
                            responseText: data.results[0]
                                // YQL screws with <script>s
                                // Get rid of them
                                .replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, '')
                        }, 'success');
                    }
                    
                };
            })(o.success);
            
        }
        
        return _ajax.apply(this, arguments);
        
    };
    
})(jQuery.ajax);
