var o11;
var	o12;
var	o13;
var	o21;
var	o22;
var	o23;
var	o31;
var	o32;
var	o33;
var oViewport;
var oContent;
var oOverlay;
var bFirstLoad;
var bRetrievingPage = false;
var bBlockRetrievingPage = false;

var Language = 'en';

var CountryList = ["india","united states","afghanistan","aland islands","albania","algeria","american samoa","andorra","angola","anguilla","antarctica","antigua and barbuda","argentina","armenia","aruba","australia","austria","azerbaijan","bahamas","bahrain","bangladesh","barbados","belarus","belgium","belize","benin","bermuda","bhutan","bolivia","bosnia and herzegovina","botswana","bouvet island","brazil","british indian ocean territory","brunei darussalam","bulgaria","burkina faso","burundi","cambodia","cameroon","canada","cape verde","cayman islands","central african republic","chad","chile","china","christmas island","cocos (keeling) islands","colombia","comoros","congo","cook islands","costa rica","cote divoire (ivory coast)","croatia (hrvatska)","cuba","cyprus","czech republic","democratic republic of the congo","denmark","djibouti","dominica","dominican republic","east timor","ecuador","egypt","el salvador","equatorial guinea","eritrea","estonia","ethiopia","faroe islands","federated states of micronesia","fiji","finland","france","france, metropolitan","french guiana","french polynesia","french southern territories","gabon","gambia","georgia","germany","ghana","gibraltar","great britain (uk)","greece","greenland","grenada","guadeloupe","guam","guatemala","guinea","guinea-bissau","guyana","haiti","heard island and mcdonald islands","honduras","hong kong","hungary","iceland","indonesia","iran","iraq","ireland","israel","italy","jamaica","japan","jordan","kazakhstan","kenya","kiribati","korea (north)","korea (south)","kuwait","kyrgyzstan","laos","latvia","lebanon","lesotho","liberia","libya","liechtenstein","lithuania","luxembourg","macao","macedonia","madagascar","malawi","malaysia","maldives","mali","malta","marshall islands","martinique","mauritania","mauritius","mayotte","mexico","moldova","monaco","mongolia","montserrat","morocco","mozambique","myanmar","namibia","nauru","nepal","netherlands","netherlands antilles","new caledonia","new zealand (aotearoa)","nicaragua","niger","nigeria","niue","norfolk island","northern mariana islands","norway","oman","pakistan","palau","palestinian territory","panama","papua new guinea","paraguay","peru","philippines","pitcairn","poland","portugal","puerto rico","qatar","reunion","romania","russian federation","rwanda","s. georgia and s. sandwich islands ","saint helena","saint kitts and nevis","saint lucia","saint pierre and miquelon","saint vincent and the grenadines","samoa","san marino","sao tome and principe","saudi arabia","senegal","serbia and montenegro","seychelles","sierra leone","singapore","slovakia","slovenia","solomon islands","somalia","south africa","spain","sri lanka","sudan","suriname","swaziland","sweden","switzerland","syria","taiwan","tajikistan","tanzania","thailand","timor-leste","togo","tokelau","tonga","trinidad and tobago","tunisia","turkey","turkmenistan","turks and caicos islands","tuvalu","uganda","ukraine","united arab emirates","united kingdom","uruguay","uzbekistan","vanuatu","vatican city state (holy see)","venezuela","viet nam","virgin islands (british)","virgin islands (u.s.)","wallis and futuna","western sahara","yemen","zambia","zimbabwe"];
CountryList.sort();

function UCFirst( sAVar ){
    var sFirst = sAVar.charAt(0).toUpperCase();
    return sFirst + sAVar.substr(1);
}

function initDropdowns(){

	enx('#category').append("<option value='sales@vsi.nl'>Sales</option>" );
	enx('#category').append("<option value='inkoop@vsi.nl'>Purchase</option>" );	
	enx('#category').append("<option value='sales@vsi.nl'>Marketing & Communication</option>" );
	enx('#category').append("<option value='personeelszaken@vsi.nl'>Human Resources / Personeelszaken</option>" );
	enx('#category').append("<option value='sales@vsi.nl'>Other information</option>" );
	
	enx('#country').append("<option value=''></option>" );	
	enx('#country').append("<option value='Netherlands'>Netherlands</option>" );		
	enx('#country').append("<option value=''></option>" );	
	for( var i=0; i<CountryList.length; i++ ){
		enx('#country').append("<option value='"+UCFirst(CountryList[i])+"'>"+UCFirst(CountryList[i])+"</option>" );	
	}
}

enx(window).load(
	function() {		
		if( (enx.cookie('vsi') == 1) ){
			oLoadingArea = enx('#loadingArea');
			oLoadingArea.fadeOut( 500, function(){} );										
		}
		oLogoMenu = enx('.logomenu');
		oLogoMenu.fadeIn( 500, function(){} );															   
});

function callback(hash)
{
	if( hash != '' ){				
		var oLocation = hash.split("?");
		sPath = oLocation[0];
		sAction = oLocation[1];			
					
		ShowPage( sPath, sAction );			
		UpdateMenu( sPath.replace( /\//g, ':' ) );		
	}else{
		ToggleLogo();
	}
}

enx( function () {	

	if (enx.cookie('vsi') == null){ 
		enx.cookie('vsi', '1'); 
	}else{
		enx.cookie('vsi', '2'); 
		enx('#loadingArea').css( "display", "none" );
	}

	if( enx('#currentlanguage').val() != undefined ){
		Language = enx('#currentlanguage').val();		
	}
	
	
	enx(document).bind( 'click', function(){
		if( enx( '#mousetext' ).is(':visible') ){ enx( '#mousetext' ).fadeOut(); }
	});	
	
	if( (location.pathname !== '/') && (location.pathname != Language) ){	
		var sLocation = enx('#currenturl').val();				
		if( sLocation != undefined ){
			var oLocation = sLocation.split('?')
			if( enx('#currenturl').attr('do') == '' ){				
				sLocation = oLocation[0];
			}					
			window.location.href = '/#'+sLocation;	
		}	
	} 
	
	
	enx(document).ready(function() {
		enx.history.init(callback);
		enx("a[rel='history']").click(function(){
			enx.history.load(this.href.replace(/^.*#/, ''));
			return false;
		});
	});	
		
	
	// Zet hier alle pointers naar de div objecten (veel sneller tijdens de berekeningen)									 			
	o11 = enx('#r1c1');
	o12 = enx('#r1c2');		
	o13 = enx('#r1c3');
	o21 = enx('#r2c1');	
	o22 = enx('#r2c2');
	o23 = enx('#r2c3');	
	o31 = enx('#r3c1');
	o32 = enx('#r3c2');	
	o33 = enx('#r3c3');	
	
	
	oViewport = enx('#viewport');		
	oContent = enx('#content');
	oOverlay = enx('#overlay');	
	oParentGrid = enx('#parentgrid');	
	
	// Koppel alle events
	// oViewport.mousedown(onMouseDown);	

	enx(document).mousemove(onMouseMove);		
	enx(document).mouseup(onMouseUp);		

	enx(document).bind("mousedown", function(e) {				
		if (e.target.className == 'viewport' ){			
			onMouseDown(e);
		} else {
			return true;
		}
	});	

	enx(document).data('disable-drag', false );	
	enx(".movable-div").bind("mousedown", function(e) {		
		onMouseDown(e);
		return false;
	});	
	
	enx(this).bind("contextmenu", function(e) {
		e.preventDefault();
	});
	
	document.ontouchstart = function(e){    		
		if (enx('#content').css('display')=='none') {
			onMouseDown(e);	
		}
	}
	
	document.ontouchend = function(e){        
		if (enx('#content').css('display')=='none') {
			onMouseUp(e);	
		}
	}
		
	
	document.ontouchmove = function(e){        
		if (enx('#content').css('display')=='none') {
			onMouseMove(e);	
			e.preventDefault();
		}
	}
	
	
	o11.disableSelection();
	o12.disableSelection();
	o13.disableSelection();
	o21.disableSelection();
	o22.disableSelection();
	o23.disableSelection();	
	o31.disableSelection();
	o32.disableSelection();
	o33.disableSelection();			
	
	oViewport.disableSelection();	
	
	// Initialiseer de movable divs
	InitDivPositions();					
	
	// Kijk of we meteen een pagina moeten gaan inladen
	if (enx("#curpage").val()!='') {
		//ShowPage( enx("#curpage").val().replace( ':', '/' ), enx("#curdo").val() );		
	}	
	
	// Wouters code voor main-menu initialisatie
	enx( ".item" ).click( ToggleItem );		
	enx( ".sub-item" ).bind( "click", ToggleSubItem );		
	enx( ".subsub-item" ).click( ToggleSubSubItem );			
	enx( "#sub" ).attr( "open", false );
	
	enx( ".menu-logo" ).click( ToggleLogo );	
	enx( ".menu-logo" ).bind( 'dblclick', function(e){
		if( e.ctrlKey ){
			window.location.href = '/#/pages/en/account?do=login';
		}
	});
	
    RepositionDivs();	
		
	StartGridDragAnimation();
});

function RepositionDivs(){
	var iMidX = (( oViewport.width() - enx( "div.content" ).width() ) / 2);
			
	enx( "div.content" ).css( "left", iMidX );			
	enx( "div.menu-holder" ).css( "left", iMidX - 5 );			
}


function DontShowAgainClick(){
	enx( "#dontshowagain" ).stop();
	enx( "#mousetext" ).stop();
	enx( "#dontshowagain" ).fadeOut( 500 );
	enx( "#mousetext" ).fadeOut( 500 );	
	enx.cookie('dontshowagain', '1');
}



function StartGridDragAnimation(){
	var iDuration = 40000;
	var iOffsetX = 800;
	var iOffsetY = -700;
	var oDontShowAgain = enx( "#dontshowagain" );
	var oMouseText = enx( "#mousetext" );
	
	AnimateAllDivs( iOffsetX, iOffsetY, iDuration,1 );
	if( (enx.cookie('dontshowagain') != '1' ) ){
		oMouseText.show();
		oDontShowAgain.show();
		//oMouseText.animate( { top : (oMouseText.offset().top+0) + "px"},6000, function(){
		//	oDontShowAgain.fadeOut( 500 );
		//	oMouseText.fadeOut( 500 );		
		//});															
		
	}
	
}


function HandleGridTileClick( sAPagename ){
	if( bAllowClick ){
		ShowPage( sAPagename );	
		UpdateMenu( sAPagename.replace( /\//g, ':' ) );		
	}
	bAllowClick = false;
}

function HandleGridTileExtUrlClick( sAURL ){
	if( bAllowClick ){
		var newWindow = window.open( sAURL, '_blank');
		newWindow.focus();
	}
	bAllowClick = false;
}


// Functie om een nieuwe pagina te laten zien
function ShowPage( sAPagename, sADo ){	
			
	sHash = location.hash.split('?')[0];	
	if( sHash.substr(0,1) == '#' ){ sHash = sHash.slice(1); }
	
	if( sHash != sAPagename ){
		location.hash = sAPagename;		
	}
	else{
		
		var sWikiInclude = '';
		
		if( sADo == '' ||  sADo == undefined ){ sADo = 'do=view'; }
		sWikiInclude = sAPagename + '?include=true&'+sADo;			
	
		
		oOverlay.height( enx(window).height() );

		bRetrievingPage = true;
		
		enx.get( sWikiInclude, function(data) {		
		
			bRetrievingPage = false		
			if( bBlockRetrievingPage == false ){
					
				oContent.html( data );				
				oContent.fadeIn( 500, function(){} );		  																						  				
				oOverlay.fadeIn( 500, function(){} );																
				
				// Dit is een hele lelijke fix om de belachelijke Option IE bug op te lossen
				initDropdowns();			
			} else {
				bBlockRetrievingPage = false;
			}
		});	
	
		SetGridState( false );
	}
}

function SetGridState( bAEnabled ) {
	
	if (enx("#curdevice").val() == "ipad") {
		if (bAEnabled==false) {
			enx(".viewport").css( {'overflow':'none'} );
			enx(".gridtiles").css( {'overflow':'none'} );
			enx(".movable-div").css( {'overflow':'none'} );
			enx(".overlay").css( {'overflow':'none'} );

			enx(".movable-div").css( {'display':'none'} );
			enx(".overlay").css( {'display':'none'} );
			
			enx(".menu-holder").bind('touchmove',false);
			enx(".overlay").bind('touchmove',false);
			enx(".viewport").bind('touchmove',false);
			if (enx("#curdevicever").val() == "ipad4") {
				enx(".content").height( '1800px' );
			}

		} else
		if (bAEnabled==true) {					
			enx(".viewport").css( {'overflow':'visible'} );
			enx(".gridtiles").css( {'overflow':'visible'} );
			enx(".movable-div").css( {'overflow':'visible'} );
			enx(".overlay").css( {'overflow':'visible'} );
			enx(".movable-div").css( {'display':'block'} );
		}
	}
}

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

enx(window).bind( 'orientationchange', function(e){

});

enx.fn.center = function() {
    this.css("position","absolute");
    this.css("top", ((enx(window).height() - this.outerHeight()) / 2) + enx(window).scrollTop() + "px");
    this.css("left", ( (enx(window).width() / 2) - ( this.outerWidth() / 2) ) + "px");
    return this;
}

function expand( sAName ){

	var oItem = enx('.menuitem[name="'+sAName+'"]');
	var oParent = enx('.menuitem[name="'+enx(oItem).attr('parent')+'"]');

	enx('.menuitem.active').removeClass('active');
	enx(oParent).addClass('active');
	enx(oItem).addClass('active');

	enx( '.ui-icon-arrow-d' ).addClass('ui-icon-arrow-u').removeClass('ui-icon-arrow-d');
	enx(oItem).find( '.ui-icon' ).addClass('ui-icon-arrow-d');
	enx(oParent).find( '.ui-icon' ).addClass('ui-icon-arrow-d');
	
	if( !enx( oItem ).is('.sub') ){
		enx( '.sub' ).css( 'display', 'none' );
	}
	enx(oItem).css( 'display', 'inline-block' );	
	enx('.sub[parent="'+sAName+'"]').css( 'display', 'inline-block' );
}

