
	
	$(document).ready(function() {

		var arr = new Array();
		arr = document.getElementsByTagName( "IMG" );
		for(var i=0; i < arr.length; i++){
			var tagName = document.getElementsByTagName( "IMG" ).item(i).nodeName;
			var tagObj = document.getElementsByTagName( "IMG" ).item(i);
			if(tagObj.src != ''){
				window['img' + i] = new Image();
				window['img' + i].src = tagObj.src;
			}
		}
	
		var obj = new Array();
		obj = document.getElementsByTagName( "*" );
		for(var i=0; i < obj.length; i++){
			var tagObj = document.getElementsByTagName( "*" ).item(i);
			var bkimg;
			if(tagObj.getAttribute('onmouseover') != null){
				if(tagObj.getAttribute('onmouseover').toString().toLowerCase().indexOf('this.src') != '-1'){
					classimg = tagObj.getAttribute('onmouseover').toString().toLowerCase().replace(/function anonymous\(\)/g, '');
					classimg = classimg.replace(/function onmouseover\(\)/g, '');
					classimg = classimg.replace(/(\r|\n)/g, "");
					classimg = classimg.replace(/\{/g, '');
					classimg = classimg.replace(/\}/g, '');
					classimg = classimg.replace(/\"/g, '');
					classimg = classimg.replace(/\'/g, '');
					classimg = classimg.replace(/this\.src\=/g, '');
					classimg = 'http://www.reflexstock.com/' + classimg;
					//alert(classimg);
					window['imgsrcover' + i] = new Image();
					window['imgsrcover' + i].src = classimg;
				}
				if(tagObj.getAttribute('onmouseover').toString().toLowerCase().indexOf('this.classname') != '-1'){
					classstr = tagObj.getAttribute('onmouseover').toString().toLowerCase().replace(/function anonymous\(\)/g, '');
					classstr = classstr.replace(/function onmouseover\(\)/g, '');
					classstr = classstr.replace(/(\r|\n)/g, "");
					classstr = classstr.replace(/\{/g, '');
					classstr = classstr.replace(/\}/g, '');
					classstr = classstr.replace(/\"/g, '');
					classstr = classstr.replace(/\'/g, '');
					classstr = classstr.replace(/this\.classname\=/g, '');
					classstr = getStyleClass(classstr).style.backgroundImage.replace(/url\(/g, '');
					classstr = classstr.replace(/URL\(/g, '');
					classstr = classstr.replace(/\)/g, '');
					classstr = classstr.replace(/\"/g, '');
					classstr = classstr.replace(/\'/g, '');
					classstr = classstr.replace(/\.\./g, 'http://www.reflexstock.com/Reflexstock');
					//alert(classstr);
					window['imgclsover' + i] = new Image();
					window['imgclsover' + i].src = classstr;
				}
			}
			if(tagObj.currentStyle) {	//IE Opera 
				bkimg = tagObj.currentStyle.backgroundImage; 
			} else { //Firefox needs the full css code to work 
				bkimg = getComputedStyle(tagObj,'').getPropertyValue('background-image'); 
			} 
			if(bkimg){
				if(bkimg !== 'none'){
					bckgrndimg = bkimg.replace(/url\(/g, '');
					bckgrndimg = bckgrndimg.replace(/URL\(/g, '');
					bckgrndimg = bckgrndimg.replace(/\)/g, '');
					bckgrndimg = bckgrndimg.replace(/\"/g, '');
					bckgrndimg = bckgrndimg.replace(/\'/g, '');
					//alert(bckgrndimg);
					window['imgbck' + i] = new Image();
					window['imgbck' + i].src = bckgrndimg;
				}
			}
			if(tagObj.getAttribute('compimgsrc') != null){
				if(tagObj.getAttribute('compimgsrc') != ''){
					zoomimg = tagObj.getAttribute('compimgsrc');
					//alert("imgzoom"+i+"='"+tagObj.getAttribute('compimgsrc'));
					// soort vaan img http request moet het plaatje nog terug kunnen krijgen
					window['imgzoom' + i] = new Image();
					window['imgzoom' + i].src = zoomimg;
				}
			}
		}
		//Manual added images
		//var imgbcksub = new Image();
		//imgbcksub.src = 'logo.jpg';
	});
	
	//get a style from the stylesheet
	function getStyleClass (className) { 
		if (document.styleSheets.length < 1) { 
			return null; 
		} 
		if (document.styleSheets[0].cssRules) { 
			var cssRules = 'cssRules'; 
		} else { 
			var cssRules = 'rules'; 
		} 
		for (var s = 0; s < document.styleSheets.length; s++) { 
			for (var r = 0; r < document.styleSheets[s][cssRules].length; r++) { 
				if (document.styleSheets[s][cssRules][r].selectorText == '.' + className) { 
					return document.styleSheets[s][cssRules][r]; 
				} 
			} 
		} 
		return null; 
	} 
	
	
	var advSearchIsOpen = 1;
	
	//bookmark function
	function bookmark(url, description)
	{
	netscape="Netscape User's hit CTRL+D to add a bookmark to this site."
	if (navigator.appName=='Microsoft Internet Explorer')
	{
	window.external.AddFavorite(url, description);
	}
	else if (navigator.appName=='Netscape')
	{
	alert(netscape);
	}
	}
	
	function showHelp(){
		theref = 'http:\/\/www.reflexstock.com/index.cfm?/Downloadproblems_en';
		opts = 'width = ' + (screen.availWidth - 50) + ', height = ' + (screen.availHeight - 100) + ', resizable, status=yes, left=10, top=10, X=10, Y=10 scrollbars';
		helpwin = window.open(theref, 'helpwin', opts);
		helpwin.focus();
	}
	
	function putImg(imgid, puttype, arttype, extIntCode, xtra){//put image into lightbox or shoppingbasket
		extIntCode = (extIntCode==null)?0:extIntCode;
		if(puttype=='1'){//lighbox
			
				alert("You need to be logged in in order to use lightboxes.");
			
		}
		else{//add to basket
			location = 'http:\/\/www.reflexstock.com/index.cfm?/basket_en&basketact=add&basketid='+imgid+'&baskettype='+arttype+'&extIntCode='+extIntCode+'&'+xtra;
		}
	}
	
	
	function downloadCreditimage(imgid, extIntCode, size){//put image into lightbox or shoppingbasket		
		extIntCode = (extIntCode==null)?0:extIntCode;
		alert('a');
		
			//alert("You need to be logged in to download images");
			//location = 'index.cfm?/Login_en&followalias=start_en&imgid='+imgid+'&extIntCode='+extIntCode;
			showLogin();
		
	}
	//shoppingbasket functions
	function removeImg(imgid, puttype, arttype){
		if(puttype==2)
			location = 'index.cfm?/basket_en&basketact=remove&basketid='+imgid+'&baskettype='+arttype;
	}
	
	function recalcPrice(){//called from basket upon changing the size of an image
		document.basketform.submit();
	}
	
	function calcprice(idx, imgid, extintcode){
		opts = 'width=550, height=600, scrollbars=1, resizable';
		theurl = 'http:\/\/www.reflexstock.com/_snippets/SMS/priceCalculator/index.cfm?bidx='+idx+'&imgid='+imgid+'&extintcode='+extintcode;
		calcwin = window.open(theurl, 'calcwin', opts);
		calcwin.focus();
	}
	
	function confirmOrder(){
		if(checkOrder()){
			document.basketform.subact.value = 'confirm';
			document.basketform.submit();
		}
	}
	
	function checkOrder(){
		if(document.basketform.rmimagelist.value!=''){
			rm_a = document.basketform.rmimagelist.value.split(",");
			for(x=0;x<rm_a.length;x++){
				if(document.basketform.elements['rmprice_'+rm_a[x]].value=='0'){
					alert("You have not performed a price calculation for every rights managed image yet.");//You haven\'t calculated a price for all rights managed images yet.
					return false;			
				}
			}
		}
		return true;
	}
	
	imgclicked = 0;
	function noContext(tp){
		if(tp=='img'){
			//do nothing, it's ok
			imgclicked = 1;
		}
		else{
			if(imgclicked==1)
				imgclicked = 0;
			else
				return false;
		}
	}
	
	
	//=============================== Form handling functions ==========================================
	function checkformOnSubmit(frmname){
		cd = getFormCheckData(frmname);
		
		for(x=0;x<cd.length;x++){
			checker = getChecker(cd[x]);
			check_a = checker.check_a;
			for(c=0;c<check_a.length;c++){
				chkRes = checkFldOnSubmit(frmname, fn, ft, check_a[c]);
				if(chkRes != 'ok'){
					alert(chkRes);
					document.forms[frmname].elements[fn].focus();
					window.returnValue = false;
					return false;
				}
			}
		}
	}
	
	function checkFormFldChange(frmname, fldname, act){
		cd = getFormCheckData(frmname);
		for(x=0;x<cd.length;x++){
			checker = getChecker(cd[x]);
			if(checker.fn==fldname){
				check_a = checker.check_a;
				for(c=0;c<check_a.length;c++){
					chkRes = checkFldOnChange(frmname, fn, ft, check_a[c]);
					if(chkRes != 'ok'){
						alert(chkRes);
						document.forms[frmname].elements[fn].focus();
						window.returnValue = false;
						return false;
					}
				}
				//fld.focus();
				return true;
			}		
		}
	}
	
	function getFormCheckData(frmname){
		if(typeof(document.forms[frmname].formCheckData) != 'undefined'){
			cd = document.forms[frmname].formCheckData.value;
			cd_a = cd.split(';');
			return cd_a;
		}
		else{
			return new Array();
		}
	}
	
	function getChecker(ck){
		chk = cd[x].indexOf('_CK:')!=-1?cd[x].substring(cd[x].indexOf('_CK:')+4, cd[x].length):'';
		ft = '';
		fn = '';
		if(chk != ''){
			ft = cd[x].indexOf('_FT:')!=-1?cd[x].substring(cd[x].indexOf('_FT:')+4,cd[x].indexOf('_CK:')):'';
		}
		if(( chk != '') && (ft != '')){
			fn = cd[x].indexOf('_FN:')!=-1?cd[x].substring(cd[x].indexOf('_FN:')+4,cd[x].indexOf('_FT:')):'';
		}
		ret = new Object();
		ret.check_a = chk.toLowerCase().split(',');
		ret.ft = ft.toLowerCase();
		ret.fn = fn;
		return ret;
	}
	
	function checkFldOnSubmit(frmname, fldname, fldtype, check){
		fld = document.forms[frmname].elements[fldname];
		switch(check) {		
			case 'mandatory':
				if((typeof(fld.tagName)!='undefined')&&(fld.tagName=='INPUT')){				
					if(fldtype=='checkbox'){
						if(!fld.checked){
							msg = 'b.1';
							return msg;
						}
					}
					else if(fld.value==''){
						msg = 'You did not enter all mandatory fields. \nFields with a * are mandatory.';
						return msg;
					}				
				}
				break;
			case 'copytext':
				ae_editsourceinline(1, false);//first put back on normal view in case of HTML view.
				theTxt = DHTMLSafe.DOM.body.innerText;
				document.forms[frmname].elements['HTMLtext_retainer_'+fldname].value = theTxt;
				break;
			case 'email':
				val = fld.value;
				if( (val!='') && ( (val.length<8) || (val.indexOf('@')<2) || (val.indexOf('@')>val.lastIndexOf('.')) || (val.lastIndexOf('.')>val.length-3))){
					msg = "The email address you entered is invalid.";
					return msg;
				}
				break;
			case 'bankaccount':
				val = fld.value;
				if(val.substring(0,1).toLowerCase() != 'p'){
					gotall=0;
					pos=0;
					cntpos=0;
					total=0;
					do{
						thenum = val.substring(pos, pos+1);
						if(thenum!='.'){
							thenum = parseInt(thenum);
							multiplier = 9-cntpos;
							theval = thenum * multiplier;
							total = total + theval;
							cntpos++;
						}
						pos++;
					}
					while( (cntpos<9) && (pos < val.length))
					
					if( (total%11!=0) || (cntpos!=9) ){
						msg = 'The entered bankaccountnumber is invalid.';
						return msg;
					}				
				}
				break;
		}	
		if(fldtype=='date'){
			//check valid dates		
			val = fld.value;
			if(val!=''){
				dv = val.substring(0,2);
				mv = val.substring(3,5);
				yv = val.substring(6,10);
				
				days_a=(new String("31,28,31,30,31,30,31,31,30,31,30,31")).split(',');
				
				if(mv<1 || mv>12){
					msg = 'The entered date is invalid.';
					return msg;
				}
				maxday=((yv%4==0)&(mv==2))?29:days_a[mv-1];
				dv = parseInt(dv);
				maxday = parseInt(maxday);					
				if(dv<1 || dv>maxday){
					msg = 'The entered date is invalid.';
					return msg;
				}
			}
		}
		return 'ok';
	}
		
	function checkFldOnChange(frmname, fldname, fldtype, check){
		fld = document.forms[frmname].elements[fldname];	
		switch(fldtype.toLowerCase()) {		
			case 'date':
				if(fld.value!=''){		
					val = fld.value;
					newval = '';
					q=0;
					do{
						chr = val.substring(q,q+1);
						RE = "0,1,2,3,4,5,6,7,8,9,-";
						res = RE.indexOf(chr);
						if(res!=-1){
							if((q==1)&&(chr=='-')){
								val = '0' + val;
								newval = '0' + newval;
								q++;
							}
							if((q==2)&&(chr!='-')){
								val = '-' + val;
								newval = newval + '-';
								q++;
							}
							if((q==4)&&(chr=='-')){
								val = '0' + val;
								newval = newval.substring(0,3) + '0' + newval.substring(3,4);
								q++;
							}
							if((q==5)&&(chr!='-')){
								val = '-' + val;
								newval = newval + '-';
								q++;
							}						
							if( ((chr=='-') && ((q==2) || (q==5))) || (chr!='-')){
								newval += chr;
							}
						}
						q++;					
					}
					while(q<val.length&&q<10)
	
					fld.value = newval;
				}
				break;
			case '':
				break;
		}
		if(check.indexOf('maxlength') ==0){
			if(check.indexOf('=') != -1){
				ml = check.substring(check.indexOf('=')+1, check.length);
				if(fld.value.length > parseInt(ml)){
					fld.value = fld.value.substring(0, ml);
				}
			}
		}
		else if(check=='reloadonchange'){
			formReload(frmname);
		}
		else if(check=='alias'){
			newval = '';
			for(q=0;q<fld.value.length;q++){
				chr = fld.value.substring(q,q+1);
				RE = /[^\w|\s|\0,9]/i;	// at least one non word character
				res = chr.match(RE);
				//alert('res op match('+chr+') is '+res);
				if((res==null)&&(chr!=' ')){
					newval += chr;
				}
			}
			fld.value = newval;
		}	
		return 'ok';
	}
	
	function checkDate(frmname, fldname){
		checkFldOnChange(frmname, fldname, 'date', 'date');
		
		fld = document.forms[frmname].elements[fldname];
		val = fld.value;
		if((val.length!=10)&&(val.length!=0)){
			if(val.split('-').length==3){
				//autocorrect yyyy value
				if(val.length>6){
					yyyy = parseInt(val.substring(6,val.length));
					if(yyyy<40){
						yyyy = 2000 + yyyy;
					}
					else if((yyyy>39) && (yyyy<100)){
						yyyy = 1900 + yyyy
					}
					else if(yyyy>99){
						yyyy = 1800 + yyyy;
					}
					else{
						alert("The entered date is invalid.");
						fld.focus();
						window.returnValue = false;
						return false;					
					}				
				}
				else{
					yyyy = new Date().getYear();
				}
				fld.value = fld.value.substring(0,6) + yyyy;
			}
			else{
				alert("The entered date is invalid.");
				fld.focus();
				window.returnValue = false;
				return false;					
			}
		}
		if(val.length!=0){
			if(val.split('-').length==3){
				//verify correct input
				val = fld.value;
				dv = val.substring(0,2);
				mv = val.substring(3,5);
				yv = val.substring(6,val.length);
				
				days_a=(new String("31,28,31,30,31,30,31,31,30,31,30,31")).split(',');
				
				if(mv<1 || mv>12)
				{
					alert("The entered date is invalid.");
					fld.focus();
					window.returnValue = false;
					return false;	
				}
				maxday=((yv%4==0)&(mv==2))?29:days_a[mv-1];
				dv = parseInt(dv);
				maxday = parseInt(maxday);					
				if(dv<1 || dv>maxday)
				{
					alert("The entered date is invalid.");
					fld.focus();
					window.returnValue = false;
					return false;	
				}
			}
			else{
				alert("The entered date is invalid.");
				fld.focus();
				window.returnValue = false;
				return false;					
			}
		}
	}
	
	function doMaxrows(){
		noRows = document.searchInRes.maxrows.options[document.searchInRes.maxrows.options.selectedIndex].value;
		document.searchForm.maxros.value = noRows;
		if(checkSearchForm)
			document.searchForm.submit();
	}
	
	function doThdir(sel){
		document.searchForm.thdir.value = sel.options[sel.options.selectedIndex].value;
		document.searchForm.startpos.value = '1';
		if(checkSearchForm)
			document.searchForm.submit();
	}
	
	function hiresdownload(imgid,extintcode){
		opts = 'width=550, height=600, resizable, status=yes, scrollbars=yes';
		theurl = 'http:\/\/www.reflexstock.com/index.cfm?/hiresdownload&imguuid='+imgid+'&extIntCode='+extintcode;
	
		xlcompwin = window.open(theurl, 'xlcompwin', opts);
		xlcompwin.focus();

	}
	
	
	
	function chkAdvFeaturesUsed(){
		f = document.Searchform;
		if(!f.orientation[0].checked)
			return 1;
			
		else if(!f.color[0].checked)
			return 1;
			
		else if(!f.people[0].checked)
			return 1;
			
		else if(!f.ethnicity[0].checked)
			return 1;
		
		
	}
	
	function resetAdvFeatures(){
		
	}

	
	
	function buyCredits(noCredits){
		noCredits = noCredits==null?0:noCredits;
		
		opts = 'width=500,height=570,status=1,resizable,scrollbars';
		href = 'http://www.reflexstock.com/Reflexstock/scripts/buycredits/index.cfm?cp=92F29A8E-1D09-6D43-CB88DE9D48CBE100&nocredits='+noCredits;
		creditwin = window.open(href, 'creditwin', opts);
		creditwin.focus();
	}
