/* common.js for SAGAM developed by www.multimediart.be */

if ((parseInt(navigator.appVersion) >= 4 )) { 

	dwidth = screen.width;dheight = screen.height;}

else {dwidth = 400;dheight = 300;}

/*

#########################################################################

# void MMART_Popup(string pageToLoad, integer width, integer height,

#                  boolean scroll)

#########################################################################

# deze functie laad een popup, de parameters spreken voor zichzelf ...

#########################################################################

*/

function MMART_Popup( pageToLoad, width, height, scroll) {

	center=true;

	if (!width) {width = dwidth - 12;}

	if (!height) {height = dheight - 30;}

	if ((parseInt(navigator.appVersion) >= 4 ) && (center)){

		xposition = (dwidth - width) / 2;

		yposition = (dheight - height) / 2;}

	args =

	  "width=" + width + "," 

	+ "height=" + height + "," 

	+ "location=0," 

	+ "menubar=0,"

	+ "resizable=1,"

	+ "scrollbars=" + (scroll?1:0) + ","

	+ "status=0," 

	+ "titlebar=0,"

	+ "toolbar=0,"

	+ "hotkeys=0,"

	+ "screenx=" + xposition + ","

	+ "screeny=" + yposition + ","

	+ "left=" + xposition + ","

	+ "top=" + yposition;

	popup = window.open( pageToLoad,'MMART_Window'+parseInt(Math.random()*1000),args );

	if (popup.opener == null) popup.opener = self;

	popup.focus();

}



function MMART_FormFocusOn (_id) {

	if(document.getElementById) {	//we don't want to raise any errors in older browsers

		document.getElementById('td_'+_id).style.background='#D2CFCC';

	}

}

function MMART_FormFocusOff (_id) {

	if(document.getElementById) {	//we don't want to raise any errors in older browsers

		document.getElementById('td_'+_id).style.background='#EFEEED';

	}

}

/*

#########################################################################

# boolean MMART_Validate(object objFrm)

#########################################################################

# objFrm	:	Het form-object van de form die moet gevalideerd worden

# 				bv: document.frmnaam

#########################################################################

# deze functie valideert een form aan de hand van een array die door

# de XLS stylesheet aangemaakt word, deze array draagt de naam aryFrmReq_<naam_van_de_form>.

# deze array bevat alle verplichte velden en hun informatie, ieder element van de array

# bevat zelf een array

# de array heeft het volgende formaat:

# array aryFrmReq_<naam_van_de_form>: {

# 	element 0: array {

# 		element 0:	naam van het element

# 		element 1:	formaat van het element, alleen van toepassing op een element met type 'textbox'

#					dit is INTEGER, DECIMAL, EMAIL of STRING

#                   De default waarde is STRING

# 		element 2:	titel van het element

#		element 3:	type van het element (naam van het xml-element) (textbox,textarea,selectbox,checkgroup,radiogroup)

# 	}

# 	element n: ...

#}

*/

function MMART_Validate (objFrm) {

	var aryFrmReq=eval('aryFrmReq_'+objFrm.name);	//array van deze form

	var intMainLoop=0;				//de teller voor de hoofdlus die alle verplichte elementen afloopt

	var strMsg='';			//de foutboodschap

	var objCur;				//het huidige object

	var intGroupLoop=0;				//de teller voor de lus van checkgroup en radiogroup 

	var blnGroupIsChecked=false;	//bij een checkgroup of een radiogroup houd deze variabele bij of er al een van de elementen aangekruist is

	for(intMainLoop=0;intMainLoop<aryFrmReq.length;intMainLoop++) {	//hoofd-lus die alle verplichte elementen afloopt

		/*

		als het huidige element geen checkgroup is plaatsen we het huidige object in objCur,

		omdat bij een checkgroup er [] vierkantje haakjes bij komen zodat er in PHP een array gevormd word

		*/

		if(aryFrmReq[intMainLoop][3]!='checkgroup') {objCur=eval('document.'+objFrm.name+'.'+aryFrmReq[intMainLoop][0]);}	//het huidige veld

		//'switch' het type van het element

		switch (aryFrmReq[intMainLoop][3]) {

			case 'textbox':		//het element is een textbox

				if((isNaN(parseInt(objCur.value)) || (objCur.value.indexOf('.') != -1 || objCur.value.indexOf(',') != -1)) && aryFrmReq[intMainLoop][1]=='INTEGER') {	//is het een nummer en *MOET* het een nummer zijn?

					strMsg=strMsg+'- \''+aryFrmReq[intMainLoop][2]+"\' must be a integer number\n";

				}

				else if(isNaN(parseFloat(objCur.value)) && aryFrmReq[intMainLoop][1]=='DECIMAL') {	//is het een nummer en *MOET* het een nummer zijn?

					strMsg=strMsg+'- \''+aryFrmReq[intMainLoop][2]+"\' must be a decimal number\n";

				}

				else if(!MMART_CheckEmail(objCur.value) && aryFrmReq[intMainLoop][1]=='EMAIL') {//is het een email adres en *MOET* het een email adres zijn?

					strMsg=strMsg+'- \''+aryFrmReq[intMainLoop][2]+"\' moet een geldig e-mail adres zijn\n";

				}

				else if(objCur.value.length==0) {

					/*

					als het geen van de bovenstaande is en het is een stukje tekst (een string) ...

					PS: we doen de vergelijking "aryFrmReq[i][1]=='STRING'" *NIET* omdat dit ook van toepassing moet zijn op elementen waarvan het 'format' attribuut niet is meegegeven

					*/

					strMsg=strMsg+'- \''+aryFrmReq[intMainLoop][2]+"\' moet ingevuld zijn\n";

				}

				break;

			case 'textarea':	//het element is een textarea

				if(objCur.value.length==0) {	//is het niet leeg?

					strMsg=strMsg+'- \''+aryFrmReq[intMainLoop][2]+"\' moet ingevuld zijn\n";

				}

				break;

			case 'selectbox':	//het element is een selectbox (dropdown menu)

				if(objCur.selectedIndex==0) {	//is er iets geselecteerd?

					strMsg=strMsg+'- \''+aryFrmReq[intMainLoop][2]+"\' must have a selected value\n";

				}

				break;

			case 'checkgroup':	//het element is een groep van checkboxen

				objCur=eval('document.'+objFrm.name+'.elements[\''+aryFrmReq[intMainLoop][0]+'[]\']');	//het huidige element is de naam in de array + []

				blnGroupIsChecked=false;	//er is initieel geen enkele checkbox aangekruist

				for(intGroupLoop=0;intGroupLoop<objCur.length;intGroupLoop++) {	//overloop alle checkboxen van deze groep

					if(objCur[intGroupLoop].checked) {blnGroupIsChecked=true;}	//als deze checkbox aangekruist is, zet blnIsChecked op true

				}

				if(!blnGroupIsChecked) {	//is er geen enkele checkbox die aangekruist is?

					strMsg=strMsg+'- \''+aryFrmReq[intMainLoop][2]+"\' must have a checked value\n";

				}

				break;

			case 'radiogroup':	//het element is een groep van radioboxen

				blnGroupIsChecked=false;	//er is initieel geen enkele radiobox aangekruist

				for(intGroupLoop=0;intGroupLoop<objCur.length;intGroupLoop++) {	//overloop alle radioboxen van deze groep

					if(objCur[intGroupLoop].checked) {blnGroupIsChecked=true;}	//als deze radiobox aangekruist is, zet blnIsChecked op true

				}

				if(!blnGroupIsChecked) {	//is er geen enkele radiobox die aangekruist is?

					strMsg=strMsg+'- \''+aryFrmReq[intMainLoop][2]+"\' must have a checked value\n";

				}

				break;

			

			// hier kunnen nog meer elementen worden toegevoegd ...

			default:	//elementen die niet herkend worden geven een foutmelding

				alert('Dit soort element ('+aryFrmReq[intMainLoop][3]+') wordt niet ondersteund!');

		}

		

	}

	// de lus is beëindigd, het resultaat is gekend, nl:

	if(strMsg.length!=0) {	//als er iets aan de string met foutmeldingen is toegevoegd (de lengte is niet 0), dan is er een fout opgetreden

		alert('Het formulier is niet correct ingevuld:\n'+strMsg);

		return false;

	}

	else {					//anders niet

		return true;

	}

}



function MMART_CheckEmail (strEmail) {

	if(strEmail.indexOf('@')>0) {return true;}

	else {return false;}

}



function MMART_IsValidColor(_color) {

	_color=_color.toLowerCase();

	var _isvalidhex=false;

	if(_color.length==7) {

		if(_color.substr(0,1)=='#') {

			_isvalidhex=true;

			var ascii=0;

			for(var i=1;i<7;i++) {

				ascii=_color.charCodeAt(i);

				if(!((ascii > 96 && ascii < 103) || (ascii > 47 && ascii < 58))) {_isvalidhex=false;}

			}

		}

	}

	return _isvalidhex;

}