﻿//------------------------------------------------------------------------------------------------------------------
// Algemene Parade Technologies Namespace file
//------------------------------------------------------------------------------------------------------------------
var ParadeTechnologies = {
	Sites: {
		General: {
			OpenWindow: function(url) {
				window.open(url, "WPopup", 'location=yes,scrollbars=yes,resizable=yes,status=yes,menubar=yes,toolbar=yes');
			},

			IsValidEmail: function(text) {
				if (!/^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$/.test(text)) {
					return false;
				}
				return true;
			},

			GetStyle: function(obj, styleProp) {
				if (obj.currentStyle)
					var y = obj.currentStyle[styleProp];
				else if (window.getComputedStyle)
					var y = document.defaultView.getComputedStyle(obj, null).getPropertyValue(styleProp);
				return y;
			},
			/*toggleDiv functie kan 1 of meerdere divs togglen ToggleDiv('id1|id2|id3')*/
			ToggleDiv: function(elid) {
				var arr = elid.split("|");
				for (var i = 0; i < arr.length; i++) {
					var el = $(arr[i]);
					if (PT.Sites.General.GetStyle(el, 'display') == 'none') {
						el.style.display = 'block';
					}
					else {
						el.style.display = 'none';
					}
				}
			},

			GetElementsByClass: function(obj, className) {
				var classElements = new Array();

				if (!obj) obj = document;
				var els = obj.getElementsByTagName("*");
				var elsLen = els.length;
				var pattern = new RegExp("(^|\\s)" + className + "(\\s|$)");
				for (i = 0, j = 0; i < elsLen; i++) { if (pattern.test(els[i].className)) { classElements[j] = els[i]; j++; } }
				return classElements;
			},

			RegisterEvent: function(obj, evt, fnc) {
				if (obj.addEventListener) {
					obj.addEventListener(evt, fnc, false);
				} else {
					obj.attachEvent("on" + evt, fnc);
				}
			},

			UnregisterEvent: function(obj, evt, fnc) {
				if (obj.addEventListener) {
					obj.removeEventListener(evt, fnc, false);
				} else {
					obj.detachEvent("on" + evt, fnc);
				}
			},

			EventSrv: function(e) {
				var targ;
				if (!e) var e = window.event;
				if (e.target) targ = e.target;
				else if (e.srcElement) targ = e.srcElement;
				if (targ.nodeType == 3) targ = targ.parentNode;
				return targ;
			},

			EditorActive: function() {
				try {
					if (CmsEditorActive !== true) {
						return false;
					}
				}
				catch (err) {
					return false;
				}
				return true;
			},

			includeJS: function(file) {
				var script = document.createElement('script');
				script.src = file;
				script.type = 'text/javascript';
				script.defer = true;
				document.getElementsByTagName('head').item(0).appendChild(script);
			},

			includeCSS: function(file) {
				var css = document.createElement('link');
				css.href = file;
				css.setAttribute('rel', 'stylesheet');
				css.type = "text/css";
				document.getElementsByTagName('head').item(0).appendChild(css);
			},

			FixIEFlicker: function() {
				if (PT.Browser.isIE) {
					try {
						document.execCommand("BackgroundImageCache", false, true);
					}
					catch (err) { }
				}
			},

			DSLCheck: function(id) {
				if (PT.Sites.General.EditorActive()) {
					var ds = $(id);
					if (ds) {
						var node = document.createElement('p');
						node.className = 'dscheck';
						node.innerHTML = 'Toevoegen kan alleen vanuit het overzicht! Klik hiervoor met de rechtermuisknop op het item dat u wil wijzigen.';
						ds.parentNode.insertBefore(node, ds.nextSibling);
						ds.style.display = 'none';
						//ds.parentNode.removeChild(ds);
						//alert("Toevoegen kan alleen vanuit het overzicht! Klik hiervoor met de rechtermuisknop op het item dat u wil wijzigen.");
					}
				}
			},

			Object: {
				Delete: function(obj) {
					if (obj) { var pn = obj.parentNode; pn.removeChild(obj); }
				},

				DeleteChildren: function(obj) {
					while (obj.childNodes.length > 0) { obj.removeChild(obj.childNodes[0]); }
				},

				AJAX: function() {
					var xmlHttp;
					try {    // Firefox, Opera 8.0+, Safari
						xmlHttp = new XMLHttpRequest();
					} catch (e) {    // Internet Explorer    
						try {
							xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
						} catch (e) {
							try {
								xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
							} catch (e) {
								return null;
							}
						}
					}
					return xmlHttp;
				},

				/* aanroepen van de functie: Pt.Sites.General.Object.AJAX_Request(this.href, Pt.Sites.Geofort.ReplaceContent, Pt.Sites.Geofort.ErrorContent);*/
				/*ReplaceContent moet altijd de parameters voor de responsetext en de url bevatten.*/
				AJAX_Request: function(url, fn_succes, fn_error) {
					var xmlhttp = PT.Sites.General.Object.AJAX();
					if (xmlhttp != null) {
						//xmlhttp.urlname = url; // WERKT DIT IN IE6???
						xmlhttp.onreadystatechange = function() { PT.Sites.General.Object.AJAX_state_Change(xmlhttp, fn_succes, fn_error); };
						xmlhttp.open("GET", url, true);
						xmlhttp.send(null);
					}
					else {
						if (fn_error) { fn_error(); }
					}
				},

				//fn_succes = function(responseText, url)	            
				AJAX_state_Change: function(xmlhttp, fn_succes, fn_error) {
					if (xmlhttp.readyState == 4) {// 4 = "loaded"
						if (xmlhttp.status == 200) {// 200 = "OK"
							if (fn_succes) {
								fn_succes(xmlhttp.responseText);
							}
						}
						else {
							if (fn_error) { fn_error(); }
						}
					}
				},

				XML: function() {
					var xmldom = null;
					try {
						xmldom = new ActiveXObject("Microsoft.XMLDOM");
						xmldom.async = false;
					} catch (e) { return null; }
					return xmldom;
				}
			}
		}
	},
	Shop: {
	// code komt in PTShopGeneral.js
},
Browser: {},
Instances: {},
Settings: {}

}

var PT = ParadeTechnologies;
var $ = function (obj) { if (typeof obj == "string") { return document.getElementById(obj); } return obj; }
var c$ = document.createElement;

PT.Settings.Language = "nl";

//------------------------------------------------------------------------------------------------------------------
// PT.Browser. Checkt de browserversie
//------------------------------------------------------------------------------------------------------------------

function InitializePTBrowser() {
    var ua = navigator.userAgent.toLowerCase();
    var isStrict = document.compatMode == "CSS1Compat",
        isOpera = ua.indexOf("opera") > -1,
        isSafari = (/webkit|khtml/).test(ua),
        isSafari3 = isSafari && ua.indexOf('webkit/5') != -1,
        isIE = !isOpera && ua.indexOf("msie") > -1,
        isIE7 = !isOpera && ua.indexOf("msie 7") > -1,
        isIE8 = !isOpera && ua.indexOf("msie 8") > -1,
        isGecko = !isSafari && ua.indexOf("gecko") > -1,
        isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1),
        isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1),
        isAir = (ua.indexOf("adobeair") != -1),
        isLinux = (ua.indexOf("linux") != -1),
        isSecure = window.location.href.toLowerCase().indexOf("https") === 0;
	
	// add browserversion to head.class
    var css_browser_selector = function(u){var ua = u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1;},g='gecko',w='webkit',s='safari',h=document.getElementsByTagName('html')[0],b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3')?g+' ff3':is('gecko/')?g:/opera(\s|\/)(\d+)/.test(ua)?'opera opera'+RegExp.$2:is('konqueror')?'konqueror':is('chrome')?w+' '+s+' chrome':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?'mobile':is('iphone')?'iphone':is('ipod')?'ipod':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win':is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; 
	css_browser_selector(ua); 

    with (ParadeTechnologies) {
		Browser.isStrict = isStrict;
		Browser.isOpera = isOpera;
		Browser.isSafari = isSafari;
		Browser.isSafari3 = isSafari3;
		Browser.isIE = isIE;
		Browser.isIE7 = isIE7;
		Browser.isIE8 = isIE8;
		Browser.isGecko = isGecko;
		Browser.isWindows = isWindows;
		Browser.isMac = isMac;
		Browser.isAir = isAir;
		Browser.isLinux = isLinux;
		Browser.isSecure = isSecure;
	}
}
InitializePTBrowser();

//------------------------------------------------------------------------------------------------------------------
// String (uitbreiding van js string-class)
//------------------------------------------------------------------------------------------------------------------
String.prototype.Trim = function() {
	var value = this;
	value = value.replace(/^\s+/, '');
	value = value.replace(/\s+$/, '');

	return value;
}

String.prototype.Left = function(count) {
	if (count < 1) { return ""; }
	var value = this;
	value = value.substring(0, count);

	return value;
}