var Metodus = new Object();
    
Metodus.framer = function() {
	var el = document.getElementById("content");

  var imgs = el.getElementsByTagName('img');

	for (var j = 0; j < imgs.length; j++) Metodus.block(imgs[j]);

	var el = document.getElementById("main");

	var imgs = el.getElementsByTagName('img');
	var imgArray = new Array();

  if (navigator.appName.indexOf('Microsoft') != -1 || navigator.appName.indexOf('MSIE') != -1) {
	  var arVersion = navigator.appVersion.split("MSIE");
	  var version = parseFloat(arVersion[1]);
		if (version < 7) return;
	}

	for (var j = 0; j < imgs.length; j++) {
		var img = imgs[j];   		
		var src = (img.src) ? img.src : "";
		
		if (img.className == 'peq') {
			var w = '124';
			var h = '93';   
			var watermark = 'js/watermark124.png';   
		}
		else {
			var w = '192';
			var h = '126';   
			var watermark = 'js/watermark.png';   
		} 

		if (src.indexOf('.gif') != -1) continue;

		x = src.lastIndexOf('images/');
		y = src.length;

		var path = src.substring(0, x);
		var filename = src.substring(x, y);

		img.id = 'img' + j; 
		img.width = w;       
		img.height = h;
		img.src = path + watermark;
		img.style.background = 'url(' + src + ') no-repeat 1px 1px';
 	
		imgArray.push(img.id);			
	}
}

Metodus.block = function(img) {
        img.onmousedown = Metodus.stop.bindAsEventListener();
        img.oncontextmenu = function() { return false; }
}

Metodus.stop = function(e) {
	if (!e) e = window.event;

        if (e.button == 2 || e.button == 3) { // 2nd or 3rd mouse buttons
        	e.cancelBubble = true;
                if (e.stopPropagation) e.stopPropagation();
                return false;
	}
}

Metodus.parser = function() {
	str = document.URL;	
	x = str.indexOf("?");
	
	if (x != -1) {
		x++;
		y = str.length;
		p = str.substring(x, y);
		
		x = p.indexOf("=");
		a = p.substring(0, x);
		
		x++;
		y = p.length;
		b = p.substring(x, y);
		
		el = $(a);
		if (el != null) { 
			el.value = unescape(b);
			el.onchange();
		}
	}
}

var wiped = new Array();

Metodus.wloader = function(pre) {
	inputs = document.getElementsByTagName('input');

	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].value.substring(0, 3) == pre) {
			inputs[i].style.color = "#8C8C8C";
			inputs[i].onfocus = function() { Metodus.wipe(this); }
			inputs[i].onblur = function() { Metodus.unwipe(this); }
			x = inputs[i].id + "";
			wiped[x] = inputs[i].value + "";
		}
	}
}

Metodus.wipe = function(el) { // focus
	x = el.id + "";
	
	if (el.value == wiped[x]) {	
		el.value = "";
		el.style.color = "#000";
	}
}
Metodus.unwipe = function(el) { // blur
	x = el.id + "";

	if (el.value == "" || el.value == " " || el.value == "\t") {
		el.style.color = "#8C8C8C";
		el.value = wiped[x];
	}
}

var scurr;
var stretched = new Array();

Metodus.stretch = function(el) {
	x = el.id + "";
	if (stretched[x] == null) { stretched[x] = el.options[0].text + ''; } // remember unselected text

	pn = el.parentNode;
	divs = pn.getElementsByTagName('div');

	for (i = 0; i < divs.length; i++) { // get stretcher div
		if (divs[i].className == 'stretcher') { scurr = divs[i]; break; }	
	}
	
	h = parseInt(scurr.offsetHeight); // stretcher height
	v = el.value; // new select value
	
	stretchers = document.getElementsByClassName('stretcher');
	
	for (i = 0; i < stretchers.length; i++) {
		if (stretchers[i] == scurr) { 
			if (v == '') {
				if (h > 1) { 
					myHeight[i].toggle(); // hide
					el.options[0].text = stretched[x]; // reset unselect text 
				} 
				
				el.selectedIndex = 0; // reset to default if spacer is selected
			}
			else { 
				if (h == 1) { 
					myHeight[i].toggle(); // show
					el.options[0].text = "None"; // change unselect text 
				} 
			}
		}		
	}
}

Metodus.snext = function() {
	h = parseInt(scurr.offsetHeight);	
	if (h > 1) { scurr.style.height = 'auto' };
}

Metodus.select = function(el) {	
	if (el.value.length) {
		tds = new Array('-duration','-description','-price');
		for (i = 0; i < tds.length; i++) {
			v = document.getElementById(el.value + tds[i]).value;

			td = document.getElementById('package' + tds[i]);
			td.innerHTML = v + '';
		}
		table = document.getElementById('package-data');
		table.style.display = 'block';
	}
	
	Metodus.stretch(el);
}

Metodus.cal = function(el) {
	pn = el.parentNode;
		
	inputs = pn.getElementsByTagName('input');	
	myCal.link = inputs[0].id;

	el = document.getElementById('calendar');
	el.innerHTML = myCal.create();
	
	myCal.opacity.toggle();
}

Metodus.cnext = function(p) {
	if (p) { // next
		myCal.month++;
		if (myCal.month > 12) {
			myCal.month = 1;
			myCal.year++;			
		}		
	}
	else { // prev
		myCal.month--;
		if (myCal.month < 1) {
			myCal.month = 12;
			myCal.year--;			
		}		
	}
	
	el = document.getElementById('calendar');
	el.innerHTML = myCal.create();	
}

Metodus.cvalue = function(id, v) {
	el = document.getElementById(id);
	el.value = v;
	el.style.color = "#000";

	myCal.opacity.custom(1, 0);

	return false;
}

Metodus.err = function(el) {
	var pn = el.parentNode;
	var children = pn.getElementsByTagName('*');
	for (var i = 0; i < children.length; i++) {
		if (children[i].className == 'err') { return children[i]; }	
	}
}

Metodus.priority = function(v) {
	va = v.split('/');						
	d1 = new Date(va[2], (va[0] - 1), va[1]);
	d2 = new Date(); // today

	dt = d1.getTime() - d2.getTime();
	dd = dt / (1000 * 60 * 60 * 24);

	return (dd <= 8) ? true : false;
}


var validated = false;

Metodus.validate = function(form) {
	var ok = true;
	
	if (form.fullname.value.length == 0) {
		form.fullname.style.borderColor = "#C00";
		err = Metodus.err(form.fullname);
		err.innerHTML = "Please enter your name"; ok = false;
	}
	else {
		form.fullname.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
		err = Metodus.err(form.fullname);
		err.innerHTML = " ";
	}

	if (form.email.value.length == 0 || form.email.value.substring(0, 3) == "ej." || form.email.value.substring(0, 3) == "ex." || form.email.value.indexOf("@") == -1) {
		form.email.style.borderColor = "#C00";
		err = Metodus.err(form.email);
		err.innerHTML = "Please enter a valid email"; ok = false;
	}
	else {
		form.email.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
		err = Metodus.err(form.email);
		err.innerHTML = " ";
	}

	if (form.name == 'form_empleos') {
                if (form.telephone.value.length == 0 || form.telephone.value.substring(0, 3) == "ej." ) {
                        form.telephone.style.borderColor = "#C00";
                        err = Metodus.err(form.telephone);
                        err.innerHTML = "Please enter a phone number"; ok = false;
                }
                else {
                        form.telephone.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
                        err = Metodus.err(form.telephone);
                        err.innerHTML = " ";
                }

                if (form.curriculum.value.length == 0) {
                        form.curriculum.style.borderColor = "#C00";
                        err = Metodus.err(form.curriculum);
                        err.innerHTML = "Please attach your curriculum"; ok = false;
                }
                else {
                        form.curriculum.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
                        err = Metodus.err(form.curriculum);
                        err.innerHTML = " ";
                }
	} else {
		if (form.country.value.length == 0) {
			form.country.style.borderColor = "#C00";
			err = Metodus.err(form.country);
			err.innerHTML = "Please select a country"; ok = false;
		}
		else {  
			form.country.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
			err = Metodus.err(form.country);
			err.innerHTML = " ";
		}
	}

	if (form.name == 'form_contact') {
		if (form.message.value.length == 0) {
			form.message.style.borderColor = "#C00";
			err = Metodus.err(form.message);
			err.innerHTML = "Please enter your message!"; ok = false;
		}
		else {
			form.message.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
			err = Metodus.err(form.message);
			err.innerHTML = " ";
		}
	}

	if (form.name == 'form_reservations' || form.name == 'form_daypasses') {	
		if (form.telephone.value.length == 0 || form.telephone.value.substring(0, 3) == "ex." ) {
			form.telephone.style.borderColor = "#C00";
			err = Metodus.err(form.telephone);
			err.innerHTML = "Please enter a phone number"; ok = false;
		}
		else { 
			form.telephone.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
			err = Metodus.err(form.telephone);
			err.innerHTML = " ";
		}
		
                if (form.arrival.value.length == 0 || form.arrival.value.substring(0, 3) == "ex.") {
                        form.arrival.style.borderColor = "#C00";
                        err = Metodus.err(form.arrival);
                        err.innerHTML = "Please enter your arrival date"; ok = false;
                }
                else {
                        form.arrival.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
                        err = Metodus.err(form.arrival);
                        err.innerHTML = " ";
                }

		if (form.card_type.value.length != 0 && form.card_name.value.length == 0) {
			form.card_name.style.borderColor = "#C00";
			err = Metodus.err(form.card_name);
			err.innerHTML = "Please enter the card holder name"; ok = false;
		}
		else {
			form.card_name.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
			err = Metodus.err(form.card_name);
			err.innerHTML = " ";
		}

		if (form.card_type.value.length != 0 && form.card_number.value.length == 0) {
			form.card_number.style.borderColor = "#C00";
			err = Metodus.err(form.card_number);
			err.innerHTML = "Please enter the card number"; ok = false;
		}
		else {
			form.card_number.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
			err = Metodus.err(form.card_number);
			err.innerHTML = " ";
		}       

		if (form.card_type.value.length != 0 && form.card_month.value.length == 0) {
			form.card_month.style.borderColor = "#C00";
			err = Metodus.err(form.card_month);
			err.innerHTML = "Please enter the expiration month"; ok = false;
		}
		else if (form.card_type.value.length != 0 && form.card_year.value.length == 0) {
			form.card_month.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
			form.card_year.style.borderColor = "#C00";
			err = Metodus.err(form.card_year);
			err.innerHTML = "Please enter the expiration year"; ok = false;
		}
		else {
			form.card_year.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
			err = Metodus.err(form.card_year);
			err.innerHTML = " ";
		}
	}
	
	if (form.name == 'form_reservations') {		
		if (form.duration.value.length == 0) {
			form.duration.style.borderColor = "#C00";
			err = Metodus.err(form.duration);
			err.innerHTML = "Please indicate the number of nights you intend to stay"; ok = false;
		}
		else {
			form.duration.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
			err = Metodus.err(form.duration);
			err.innerHTML = " ";
		}
                if (form.arrival.value.length != 0 && form.arrival.value.substring(0, 3) != "ex.") {
                        if (Metodus.priority(form.arrival.value)) $('config').value = 'reservations_priority';
                }
	}

	if (form.name == 'form_daypasses') {		
		if (form.daypass_name.value.length == 0) {
			form.daypass_name.style.borderColor = "#C00";
			err = Metodus.err(form.daypass_name);
			err.innerHTML = "Please select a package name"; ok = false;
		}
		else {
			form.daypass_name.style.borderColor = "#999 #B4B4B4 #B4B4B4 #999"
			err = Metodus.err(form.daypass_name);
			err.innerHTML = " ";
		}
                if (form.arrival.value.length != 0 && form.arrival.value.substring(0, 3) != "ex.") {
                        if (Metodus.priority(form.arrival.value)) $('config').value = 'daypasses_priority';
                }
	}

	if (!ok) {
		el = document.getElementById('form_submit');
		err = Metodus.err(el);
		
		if (validated) { 
			err.innerHTML = "There appears errors above"; 
			validated = false; //reset
		}
		else { 
			err.innerHTML = "Please fix the errors above"; 
			validated = true;
		}
	}

	return ok;	
}
