/*  
Description: Dommelsch Live Booking
Author: Ben
*/

/**
 * Gets ident from the id of the element.
 * e.g. if an element has an id of "bandid12", call
 * ident(el,"bandid") will return 12.
 */
function ident(el,str) {
	var id = el.id;
	return id.replace(str, '');
}

/**
 * Adds rollover behaviour to img elements
 */
function addRolloverBehaviour(el) {
	el.addEvent('mouseover', function() {toggleRollOver(el);});
	el.addEvent('mouseout', function() {toggleRollOver(el);});
}

/**
 * Removes the rollover behaviour
 */
function removeRolloverBehaviour(el) {
	el.removeEvent('mouseover');
	el.removeEvent('mouseout');
}

/**
 * Toggles rollover state of an image element
 */
function toggleRollOver(el) {
	var src = el.src.toLowerCase();
	var pos = src.lastIndexOf("/") + 1;
	var file = src.substring(pos,src.length); 

	if (file.indexOf("ro_") > -1)
		el.src = src.substring(0,pos) + file.substring(3,file.length);
	else
		el.src = src.substring(0,pos) + "ro_" + file;
}

/**
 * Sets a rollover image to it's rollovered state
 */
function setRolloverState(el) {
	var src = el.src.toLowerCase();
	var pos = src.lastIndexOf("/") + 1;
	var file = src.substring(pos,src.length); 

	if (file.indexOf("ro_") == -1)
		el.src = src.substring(0,pos) + "ro_" + file;	
	else
		el.src = src.substring(0,pos) + file;	
}

/**
 * Sets a rollover image to it's normal state
 */
function setNormalState(el) {
	var src = el.src.toLowerCase();
	var pos = src.lastIndexOf("/") + 1;
	var file = src.substring(pos,src.length); 

	if (file.indexOf("ro_") > -1)
		el.src = src.substring(0,pos) + file.substring(3,file.length);
}

/**
 * Special func for getting flash objects on stage
 */
function getFlashMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName]
    }
    else {
        return document[movieName]
    }
}

/**
 * Loads the new available days json
 */
function loadAvailDays(oCal, bandid, month, year) {
	var jSonRequest = new Json.Remote("model/json/json_band_days.cfm?month=" + month + "&year=" + year, {
																	/*De volgende url heb ik vervangen, omdat men wil altijd de bands beschikbaar laten zien.
																	 * bandid=" + bandid + "&month=" + month + "&year=" + year,*/
	onComplete: function(result) {
			oCal.setAvailDays(result.availDays);
		}
	}).send();
}

/**
 * Shows a modal dialogue with the age check
 */
function showAgeCheckModal() {
	var oAjaxCheck = new Ajax(
		'model/json/json_agecheck.cfm', 
		{
			method: 'get',
			onComplete: function() {
				var oModalBox = new StickyWinModal({
						content: this.response.text,
						position: 'center',
						modalOptions: {
							hideOnClick:false,
							modalStyle:{
								'background-color':'#000000',
								'opacity':.7
							}
						}
				});
				// We assume the loaded agecheck content
				// has three dropdowns we need to check
				var elems = $$('.ageCheckDropdown');
				elems.each(
					function(el, i) {
						el.addEvent('change', function() { 
						checkAge(oModalBox);
					});
				});
			}
		}
	).request();
}

/**
 * Shows a modal dialogue with the error from age check
 */
function showAgeCheckError() {
	var oAjaxCheck = new Ajax(
		'views/fo/dsp_agecheckerror.html', 
		{
			method: 'get',
			onComplete: function() {
				var oModalBox = new StickyWinModal({
						content: this.response.text,
						position: 'center',
						modalOptions: {
							hideOnClick:false,
							modalStyle:{
								'background-color':'#000000',
								'opacity':.7
							}
						}
				});
			}
		}
	).request();
}

/**
 * Checks the entered agecheck
 * Assumes three selectboxes are present:
 * ageDay,ageMonth,ageYear
 */
function checkAge(modalBox) {
	var check 		= false;
	var intDay 		= $('ageDay').value;
	var intMonth 	= $('ageMonth').value;
	var intYear 	= $('ageYear').value;
	
	// All chosen?
	if (intDay<0 || intMonth<0 || intYear<0) {
		return;
	} else {
		// getTime only works starting from 1970
		if (intYear < 1970) {
			check = true;
		} else {
			var intTimeDiff = new Date().getTime() - new Date(intYear,intMonth,intDay).getTime();
			var intYears = Math.abs(Math.floor(intTimeDiff/31536000000));
			check = (intYears >= 18)
		}
	}
	
	if (check){
		var oAjaxSession = new Ajax('index.cfm?fuseaction=app.setAgeCheck',{method:'get'}).request();
		showAboutDlbModal();
	} else {
		showAgeCheckError();
	}
	
	// Hide current box
	modalBox.hide();
	
}


/**
 * Shows a modal dialogue with about dlb
 */
function showAboutDlbModal() {
	var oAjaxCheck = new Ajax(
		'model/json/json_about_dlb.cfm', 
		{
			method: 'get',
			onComplete: function() {
				var oModalBox = new StickyWinModal({
						content: this.response.text,
						position: 'center',
						modalOptions: {
							hideOnClick:false,
							modalStyle:{
								'background-color':'#000000',
								'opacity':.7
							}
						}
				});
				// has three dropdowns we need to check
				var elems = $$('.aboutDlbPopup');
				elems.each(
					function(el, i) {
						el.addEvent('click', function() { 
						removeAboutDlb(oModalBox)
					});
				});
			}
		}
	).request();
}

function removeAboutDlb(modalBox) {
	// Hide current box
	modalBox.hide();
	
}
