/**
 * jQuery-Plugin "preloadCssImages"
 * by Scott Jehl, scott@filamentgroup.com
 * http://www.filamentgroup.com
 * reference article: http://www.filamentgroup.com/lab/update_automatically_preload_images_from_css_with_jquery/
 * demo page: http://www.filamentgroup.com/examples/preloadImages/index_v2.php
 * 
 * Copyright (c) 2008 Filament Group, Inc
 * Dual licensed under the MIT (filamentgroup.com/examples/mit-license.txt) and GPL (filamentgroup.com/examples/gpl-license.txt) licenses.
 *
 * Version: 5.0, 10.31.2008
 * Changelog:
 * 	02.20.2008 initial Version 1.0
 *    06.04.2008 Version 2.0 : removed need for any passed arguments. Images load from any and all directories.
 *    06.21.2008 Version 3.0 : Added options for loading status. Fixed IE abs image path bug (thanks Sam Pohlenz).
 *    07.24.2008 Version 4.0 : Added support for @imported CSS (credit: http://marcarea.com/). Fixed support in Opera as well. 
 *    10.31.2008 Version: 5.0 : Many feature and performance enhancements from trixta
 * --------------------------------------------------------------------
 */

;jQuery.preloadCssImages = function(settings){
	settings = jQuery.extend({
		statusTextEl: null,
		statusBarEl: null,
		errorDelay: 999, // handles 404-Errors in IE
		simultaneousCacheLoading: 2
	}, settings);
	var allImgs = [],
		loaded = 0,
		imgUrls = [],
		thisSheetRules,	
		errorTimer;
	
	function onImgComplete(){
		clearTimeout(errorTimer);
		if (imgUrls && imgUrls.length && imgUrls[loaded]) {
			loaded++;
			if (settings.statusTextEl) {
				var nowloading = (imgUrls[loaded]) ? 
					'Now Loading: <span>' + imgUrls[loaded].split('/')[imgUrls[loaded].split('/').length - 1] : 
					'Loading complete'; // wrong status-text bug fixed
				jQuery(settings.statusTextEl).html('<span class="numLoaded">' + loaded + '</span> of <span class="numTotal">' + imgUrls.length + '</span> loaded (<span class="percentLoaded">' + (loaded / imgUrls.length * 100).toFixed(0) + '%</span>) <span class="currentImg">' + nowloading + '</span></span>');
			}
			if (settings.statusBarEl) {
				var barWidth = jQuery(settings.statusBarEl).width();
				jQuery(settings.statusBarEl).css('background-position', -(barWidth - (barWidth * loaded / imgUrls.length).toFixed(0)) + 'px 50%');
			}
			loadImgs();
		}
	}
	
	function loadImgs(){
		//only load 1 image at the same time / most browsers can only handle 2 http requests, 1 should remain for user-interaction (Ajax, other images, normal page requests...)
		// otherwise set simultaneousCacheLoading to a higher number for simultaneous downloads
		if(imgUrls && imgUrls.length && imgUrls[loaded]){
			var img = new Image(); //new img obj
			img.src = imgUrls[loaded];	//set src either absolute or rel to css dir
			if(!img.complete){
				jQuery(img).bind('error load onreadystatechange', onImgComplete);
			} else {
				onImgComplete();
			}
			errorTimer = setTimeout(onImgComplete, settings.errorDelay); // handles 404-Errors in IE
		}
	}
	
	function parseCSS(sheets, urls) {
		var w3cImport = false,
			imported = [],
			importedSrc = [],
			baseURL;
		var sheetIndex = sheets.length;
		while(sheetIndex--){//loop through each stylesheet
			
			var cssPile = '';//create large string of all css rules in sheet
			
			if(urls && urls[sheetIndex]){
				baseURL = urls[sheetIndex];
			} else {
				var csshref = (sheets[sheetIndex].href) ? sheets[sheetIndex].href : 'window.location.href';
				var baseURLarr = csshref.split('/');//split href at / to make array
				baseURLarr.pop();//remove file path from baseURL array
				baseURL = baseURLarr.join('/');//create base url for the images in this sheet (css file's dir)
				if (baseURL) {
					baseURL += '/'; //tack on a / if needed
				}
			}
			if(sheets[sheetIndex].cssRules || sheets[sheetIndex].rules){
				thisSheetRules = (sheets[sheetIndex].cssRules) ? //->>> http://www.quirksmode.org/dom/w3c_css.html
					sheets[sheetIndex].cssRules : //w3
					sheets[sheetIndex].rules; //ie 
				var ruleIndex = thisSheetRules.length;
				while(ruleIndex--){
					if(thisSheetRules[ruleIndex].style && thisSheetRules[ruleIndex].style.cssText){
						var text = thisSheetRules[ruleIndex].style.cssText;
						if(text.toLowerCase().indexOf('url') != -1){ // only add rules to the string if you can assume, to find an image, speed improvement
							cssPile += text; // thisSheetRules[ruleIndex].style.cssText instead of thisSheetRules[ruleIndex].cssText is a huge speed improvement
						}
					} else if(thisSheetRules[ruleIndex].styleSheet) {
						imported.push(thisSheetRules[ruleIndex].styleSheet);
						w3cImport = true;
					}
					
				}
			}
			//parse cssPile for image urls
			var tmpImage = cssPile.match(/[^\("]+\.(gif|jpg|jpeg|png)/g);//reg ex to get a string of between a "(" and a ".filename" / '"' for opera-bugfix
			if(tmpImage){
				var i = tmpImage.length;
				while(i--){ // handle baseUrl here for multiple stylesheets in different folders bug
					var imgSrc = (tmpImage[i].charAt(0) == '/' || tmpImage[i].match('://')) ? // protocol-bug fixed
						tmpImage[i] : 
						baseURL + tmpImage[i];
					
					if(jQuery.inArray(imgSrc, imgUrls) == -1){
						imgUrls.push(imgSrc);
					}
				}
			}
			
			if(!w3cImport && sheets[sheetIndex].imports && sheets[sheetIndex].imports.length) {
				for(var iImport = 0, importLen = sheets[sheetIndex].imports.length; iImport < importLen; iImport++){
					var iHref = sheets[sheetIndex].imports[iImport].href;
					iHref = iHref.split('/');
					iHref.pop();
					iHref = iHref.join('/');
					if (iHref) {
						iHref += '/'; //tack on a / if needed
					}
					var iSrc = (iHref.charAt(0) == '/' || iHref.match('://')) ? // protocol-bug fixed
						iHref : 
						baseURL + iHref;
					
					importedSrc.push(iSrc);
					imported.push(sheets[sheetIndex].imports[iImport]);
				}
				
				
			}
		}//loop
		if(imported.length){
			parseCSS(imported, importedSrc);
			return false;
		}
		var downloads = settings.simultaneousCacheLoading;
		while( downloads--){
			setTimeout(loadImgs, downloads);
		}
	}
	parseCSS(document.styleSheets);
	return imgUrls;
};



// Weirdmaker script
var normal="abcdefghijklmnopqrstuvwxyz?*<>";
var haxxor="48(d3f9h!jk1mn0pqr57uvwxy2?*<>";
var rings="\u03b1\u0432\u00a2\u2202\u0454\u0066\u0067\u043d\u03b9\u05e0\u043a\u2113\u043c\u0438\u03c3\u03c1\u0071\u044f\u0455\u0442\u03c5\u03bd\u03c9\u03c7\u0443\u007a\u061f\u25cf\u00ab\u00bb";
var tegek="\u0102\u03b2\u010C\u010E\u0114\u0166\u011E\u0124\u0128\u0134\u0136\u0139\u041C\u0143\u0150\u0420Q\u0154\u015A\u0164ÚV\u0174\u0416\u0176\u0179\u061F\u25CF\u00ab\u00bb";
var capital="\u0E04\u0E52\u03C2\u0E54\u0454\u0166\uFEEE\u0452\u0E40\u05DF\u043Al\u0E53\u0E20\u0E4F\u05E7\u1EE3\u0433\u0E23t\u0E22\u05E9\u0E2C\u05E5\u05D0z\u061F\u25CF\u00ab\u00bb";
var crazy="\u2206\u0E52\u03C2\u2202\u2211\uFF93\u0431\uFF7B\u2170\uFF89\u043A\uFF9A\u33A1\u0438\u25CA\u3115q\u042F\u3105\u20AE\u3129\u221A\u1FF3×\u311A\u007A\u061F\u25CF\u00ab\u00bb";
var oost="\u0414\u0411\u03C2\u00D0\u0454\u20A3\u011F\u0127\u012C\u0135\u0137\u013F\u039C\u041B\u03CC\u03C1\u0071\u044F\u0161\u0163\u016D\u221A\u1E85\u0436\u03AB\u017E\u00BF\u25AA\u2264\u2265";
var chin="\uFF91\u4E43\u0063\u0064\u4E47\uFF77\u0067\u3093\uFF89\uFF8C\u30BA\uFF9A\uFFB6\u5200\u006F\uFF71\u0071\u5C3A\u4E02\uFF72\u0075\u221A\u0077\uFF92\uFF98\u4E59\u003F\u002A\u003C\u003E";
var nummer="\u24D0\u24D1\u24D2\u24D3\u24D4\u24D5\u24D6\u24D7\u24D8\u24D9\u24DA\u24DB\u24DC\u24DD\u24DE\u24DF\u24E0\u24E1\u24E2\u24E3\u24E4\u24E5\u24E6\u24E7\u24E8\u24E9\u003F\u002A\u003C\u003E";

function change(_in,_hax,_rin,_teg,_cap,_cra,_oos,_chi,_num){
	
  var hx="";
  var ri="";
  var te="";
  var ca="";
  var cr="";
  var oo="";
  var ch="";
  var nu="";


  var n=_in.toLowerCase();
  
  for(i=0; i<n.length; i++)
  {
    var c=n.charAt(i);
    for(j=0; (j<normal.length)&&(c!=normal.charAt(j)); j++);
    if (j<normal.length) 
    { 
      hx+=haxxor.charAt(j); 
      ri+=rings.charAt(j); 
      te+=tegek.charAt(j); 
      ca+=capital.charAt(j); 
      cr+=crazy.charAt(j); 
      oo+=oost.charAt(j); 
      ch+=chin.charAt(j); 
      nu+=nummer.charAt(j);


    } 
    else 
    {
      hx+=c;
      ri+=c;
      te+=c;
      ca+=c;
      cr+=c;
      oo+=c;
      ch+=c;
      nu+=c;
    }
  }


document.getElementById('_hax').value=hx;
document.getElementById('_rin').value=ri;
document.getElementById('_teg').value=te;
document.getElementById('_cap').value=ca;
document.getElementById('_cra').value=cr;
document.getElementById('_oos').value=oo;
document.getElementById('_chi').value=ch;
document.getElementById('_num').value=nu;

}

function breezah(_in, _out){
	
  var s="";
  var n=_in.toLowerCase();

  for(i=0; i<n.length; i++)
  {
    var c=n.charAt(i);
    s+=i%2?c:c.toUpperCase();
  }
  
  document.getElementById('_out').value=s;
}


// DIV tonen (was nodig voor de input-field, werkte niet met class)
function showDiv(){
	$('.weirdmaker-results').fadeIn('slow');
}

//Plaatjes laden van emoticons, msn plaatjes, winks etc.
function loadContent(id,type) {
	
	if(type == "winks"){
		$(".pictures").load("http://www.messengersites.com/includes/msn-winks.php?p="+id+"");
	 }
	else if(type == "emoticons"){
		$(".pictures").load("http://www.messengersites.com/includes/msn-emoticons.php?p="+id+"");
	 }
	else if(type == "plaatjes"){
		$(".pictures").load("http://www.messengersites.com/includes/msn-plaatjes.php?p="+id+"");
	}
	else{
		$(".pictures").load("http://www.messengersites.com/includes/msn-winks.php?p="+id+"");
	 }
}
			
			
// Wanneer de DOM geladen is, deze functies aanroepen, of klaarzetten
$(document).ready(function(){
	
// Preload al die plaatjes voor mij!
	$.preloadCssImages();

// klik op het clockmedia logootje
$("p.clockmedia").click(function() {
	open("http://www.clockmedia.nl","_self");
	return false;
});
		
// Weergeef de resultaten van de weirdmaker-input
$(".show-button").click(function(){
	$('.weirdmaker-results').fadeIn('slow');
});

// Verberg de resultaten van de weirdmaker-input
$(".hide-button").click(function(){	
	$('.weirdmaker-results').fadeOut('slow');
});

//Verberg de resultaten van de weirdmaker-input
$(".weirdmaker-input").click(function(){	
	$('.weirdmaker-results').fadeOut('slow');
});

// externe links
$('a[rel=external]').attr('target','_blank');

}); // DOCUMENT READY SLUITEN


