/**
 * Rits Framework
 *
 * LICENSE
 * 
 * This source file is subject to the Rits Commercial license.
 * 
 * @copyright  2008 Rits Comunicação & Tecnologia. (http://www.rits.com.br)
 * @license    Rits Commercial License 1.0
 * @version    $Id:$
 */

/**
 * Site 
 *
 * @category   Rits
 * @package    Rits
 * @copyright  2008 Rits Comunicação & Tecnologia. (http://www.rits.com.br)
 * @license    Rits Commercial License 1.0
 */
Rits.Site = {
	
	/**
	 * Pool submit
	 */
	pollSubmit: function(element, form, id) {		
		
		var handleSuccess = function(o) {
			if(o.responseText != 'false') {
				$D.get(element).innerHTML = o.responseText;
				Rits.Util.setCookie('poll_vote_'+id, 'true', 30);
			} else {
				alert(Rits.Language.get('site.poll.vote.error'));
			}
			Rits.Ajax.hideOverlay(element);			
		}
		var handleFailure = function(o) {			
			alert(Rits.Language.get('site.poll.vote.error'));
			Rits.Ajax.hideOverlay(element);
		}
		var callback = {
			success: handleSuccess,
			failure: handleFailure
		}
		
		form = $D.get(form);
		var answer = null;
		for(var i=0; i<form.elements['ANSWER[]'].length; i++) {
			if(form.elements['ANSWER[]'][i].checked) {
				answer = form.elements['ANSWER[]'][i].value;
			}
		}
		
		if(answer == null) {
			alert(Rits.Language.get('validation.message.option'));
			return;
		}		
		
		Rits.Ajax.displayOverlay(element);
		var request = YAHOO.util.Connect.asyncRequest('GET', '/poll/vote/?POL_ID='+id+'&ANSWER='+answer, callback);
	},
		
	clearText: function(e, txt) {
		if(e.value == txt) {
			e.value = '';
		}
	},
	
	recoverText: function(e, txt) {
		if(e.value.length == 0) {
			e.value = txt;
		}
	},
				
	openSendItem: function(url, title) {
		$D.get('url-share').value = url;
		$D.get('title-share').value = title;
		dialog_senditem.open('Enviar para um amigo');				
	},
	
	closeSendItem: function(e) {		
	},
		
	sendItem: function(layer, form) {		
		var uploadHandler = {
			success: function(o) {				
				Rits.Ajax.hideOverlay(layer);
				if(o.responseText == 'true') {					
					alert(Rits.Language.get('site.senditem.success'));
					
					form.SEN_FROM_NAME.value = '';
					form.SEN_FROM_EMAIL.value = '';
					form.SEN_TO_NAME.value = '';
					form.SEN_TO_EMAIL.value = '';
					form.SEN_MESSAGE.value = '';
					
				} else {
					alert(Rits.Language.get('site.senditem.error'));
				} 
			},
			
			failure: function(o) {
				alert(Rits.Language.get('site.senditem.error'));
				Rits.Ajax.hideOverlay(layer);
			}
		};
		
		var from_name = form.SEN_FROM_NAME.value;
		var from_email = form.SEN_FROM_EMAIL.value;
		var to_name = form.SEN_TO_NAME.value;
		var to_email = form.SEN_TO_EMAIL.value;
		var message = form.SEN_MESSAGE.value;
		
		
		if(!(from_name.length && from_email.length && Rits.Validate.isEmail(from_email) && to_name.length && to_email.length && Rits.Validate.isEmail(to_email) && message.length)) {
			alert(Rits.Language.get('validation.message.form'));			
		} else {
		
			var url = '/senditem/save/ajax/';
			
			Rits.Ajax.displayOverlay(layer);
			Rits.Ajax.submitForm(form, url, uploadHandler, true);
		}
		
	},
	
	/**
	 * Visitor login
	 *
	 * @param string element
	 * @param string seed
	 */
	visitorLogin: function(element, login, password, seed) {
		
		if(seed) {
			var handleSuccess = function(o) {
				if(o.responseText == 'true') {
					Rits.Util.reload();
				} else if(o.responseText != 'false'){
					location.href = o.responseText;
				} else {
					alert(Rits.Language.get('admin.login.error'));
					Rits.Ajax.hideOverlay(element);
				}
			}
			var handleFailure = function(o) {
				alert(Rits.Language.get('admin.login.error'));
				Rits.Ajax.hideOverlay(element);
			}
			var callback = {
				success: handleSuccess,
				failure: handleFailure
			}
						
			login = $D.get(login).value;			
			
			password = Rits.Crypt.md5(Rits.Crypt.md5($D.get(password).value)+seed);
						
			var request = YAHOO.util.Connect.asyncRequest('GET', '/login/?LOGIN='+login+'&PASSWORD='+password, callback);
			
		} else {
						
			var handleSuccess = function(o) {
				if(o.responseText !== undefined) {										
					Rits.Site.visitorLogin(element, login, password, o.responseText);
				}
			}
			var handleFailure = function(o) {
				alert(Rits.Language.get('admin.login.error'));
			}
			var callback = {
				success: handleSuccess,
				failure: handleFailure
			}
									
			if(!(Rits.Validate.isEmail($D.get(login).value) && $D.get(password).value.length)) {
				alert(Rits.Language.get('validation.message.form'));
				return;
			}
			Rits.Ajax.displayOverlay(element);	
			
			var request = YAHOO.util.Connect.asyncRequest('GET', '/login/seed/', callback);
		}
	},
	
	addNewsletter: function(element, name_field, email_field, phone_field, city_field) {
		var handleSuccess = function(o) {
			if(o.responseText != 'false') {
				alert(Rits.Language.get('Você receberá um e-mail de confirmação. Acesse o link indicado e receba as novidades da Miranda.'));
			} else {
				alert(Rits.Language.get('site.newsletter.error'));
			}			
			
			Rits.Ajax.hideOverlay(element);
		}
		var handleFailure = function(o) {
			alert(Rits.Language.get('site.newsletter.error'));
			Rits.Ajax.hideOverlay(element);
		}
		var callback = {
			success: handleSuccess,
			failure: handleFailure
		}		
						
		var name = YAHOO.util.Dom.get(name_field).value;
		var email = YAHOO.util.Dom.get(email_field).value;
		var phone = YAHOO.util.Dom.get(phone_field).value;
		var city = YAHOO.util.Dom.get(city_field).value;
		
		if(name.length == 0 || !(Rits.Validate.isEmail(email))) {
			alert(Rits.Language.get('validation.message.form'));
			return;
		}
		if(phone == 'celular') {
			phone = '';
		}
		if(city == 'cidade') {
			city = '';
		}
		
		Rits.Ajax.displayOverlay(element);
		var request = YAHOO.util.Connect.asyncRequest('GET', '/emails/add/?NAME='+escape(name)+'&EMAIL='+escape(email)+'&PHONE='+escape(phone)+'&CITY='+escape(city), callback);
		
	},
		
	
	fontSize: 12,
	fontSizeMax: 20,
	fontSizeMin: 10,
	
	fontSizeUp: function(element) {
		var size = Rits.Site.fontSize + 2;
		if(size > Rits.Site.fontSizeMax) {
			size = Rits.Site.fontSizeMax;
		}
		Rits.Site.fontSize = size;
		
		$D.setStyle(element, 'font-size', size + 'px');
	},
	fontSizeDown: function(element) {
		var size = Rits.Site.fontSize - 2;
		if(size < Rits.Site.fontSizeMin) {
			size = Rits.Site.fontSizeMin;
		}
		Rits.Site.fontSize = size;
		
		$D.setStyle(element, 'font-size', size + 'px');
	},
	
	/**
	 * Modifies a url to search parameters of the form
	 *
	 * @param Object form
	 * @param string url
	 */
	searchDefault: function(form, url) {

		// url
		if(!url) {
			url = location.href;
		}
		
		url = url.replace(/#$/, '');
		
		// fields
		field_text = 'SEARCH';
		field_company = 'SEARCH_COMPANY';
		field_category = 'SEARCH_CATEGORY';
		
		var stxt = $D.get(form).elements[field_text];
		var ssel1 = $D.get(form).elements[field_company].options[$D.get(form).elements[field_company].selectedIndex];
		var ssel2 = $D.get(form).elements[field_category].options[$D.get(form).elements[field_category].selectedIndex];

		if(ssel2 && ssel2.value != '0') {
			url = url+ ssel2.value+'/';
		}
		
		if(stxt) {
			var v = stxt.value;
			if(v == 'O que você procura?') {
				v = '';
			}
			if(v != '') {
				url = Rits.Util.modifyUrlParameter('search', v, url, true);
			}
		}
		if(ssel1 && ssel1.value != '0') {
			url = Rits.Util.modifyUrlParameter('company', ssel1.value, url, true);
		}

		location.href = url;
		
	},
	
	/**
	 * set Participate
	 *
	 * @param string element
	 * @param string seed
	 */
	setParticipate: function(element, id) {
		
		var handleSuccess = function(o) {
			if(o.responseText != 'false') {
				$(element).innerHTML = o.responseText;
				Rits.Ajax.hideOverlay(element);
			} else {
				alert('É necessário estar logado para concorrer a vaga.');
				Rits.Ajax.hideOverlay(element);
			}
		}
		var handleFailure = function(o) {
			alert('Erro ao realizar a solicitação');
			Rits.Ajax.hideOverlay(element);
		}
		var callback = {
			success: handleSuccess,
			failure: handleFailure
		}		
						
		var request = YAHOO.util.Connect.asyncRequest('GET', '/curriculum/participate/?ID='+id, callback);
		
	},
	
	/**
	 * set Desistir
	 *
	 * @param string element
	 * @param string seed
	 */
	setDesistir: function(element, id) {
		
		var handleSuccess = function(o) {
			if(o.responseText != 'false') {
				$(element).innerHTML = o.responseText;
				Rits.Ajax.hideOverlay(element);
			} else {
				alert('É necessário estar logado para desistir da vaga.');
				Rits.Ajax.hideOverlay(element);
			}
		}
		var handleFailure = function(o) {
			alert('Erro ao realizar a solicitação');
			Rits.Ajax.hideOverlay(element);
		}
		var callback = {
			success: handleSuccess,
			failure: handleFailure
		}		
						
		var request = YAHOO.util.Connect.asyncRequest('GET', '/curriculum/desistir/?ID='+id, callback);
		
	},
	
	/**
	 * Curriculum login
	 *
	 * @param string element
	 * @param string seed
	 */
	curriculumLogin: function(element, login, password, seed) {
		
		if(seed) {
			var handleSuccess = function(o) {
				if(o.responseText == 'true') {
					window.location = '/trabalhe-conosco/';
				} else {
					alert(Rits.Language.get('admin.login.error'));
					Rits.Ajax.hideOverlay(element);
				}
			}
			var handleFailure = function(o) {
				alert(Rits.Language.get('admin.login.error'));
				Rits.Ajax.hideOverlay(element);
			}
			var callback = {
				success: handleSuccess,
				failure: handleFailure
			}

			login = $(login).value;			
			password = Rits.Crypt.md5(Rits.Crypt.md5($(password).value)+seed);
						
			var request = YAHOO.util.Connect.asyncRequest('GET', '/curriculum/login/?LOGIN='+login+'&PASSWORD='+password, callback);
			
		} else {
						
			var handleSuccess = function(o) {
				if(o.responseText !== undefined) {										
					Rits.Site.curriculumLogin(element, login, password, o.responseText);
				}
			}
			var handleFailure = function(o) {
				alert(Rits.Language.get('admin.login.error'));
			}
			var callback = {
				success: handleSuccess,
				failure: handleFailure
			}
									
			if(!($(password).value.length)) {
				alert(Rits.Language.get('validation.message.form'));
				return;
			}
			Rits.Ajax.displayOverlay(element);	
			
			var request = YAHOO.util.Connect.asyncRequest('GET', '/curriculum/login/seed/', callback);
		}
	},
	
	
	addFormBlock: function(name, total, button_add, button_remove) {			
							
		var t = parseInt($D.get(total).value);						
		var e = $D.get(name+(t+1));
		
		if(e) {			
			$D.setStyle(e, 'display', '');			
			$D.get(total).value = t + 1;
		}

		t = parseInt($D.get(total).value);	
		if(t == 1) {
			$D.setStyle($D.get(button_add), 'display', '');
			$D.setStyle($D.get(button_remove), 'display', 'none');			
		} else if(t == 10) {
			$D.setStyle($D.get(button_add), 'display', 'none');
			$D.setStyle($D.get(button_remove), 'display', '');
		} else {
			$D.setStyle($D.get(button_add), 'display', '');
			$D.setStyle($D.get(button_remove), 'display', '');			
		}

	},
	removeFormBlock: function(name, total, button_add, button_remove) {			
					
		var t = parseInt($D.get(total).value);	
		
		if(t > 1) {
			var e = $D.get(name+t);
			
			if(e) {			
				$D.setStyle(e, 'display', 'none');
				$D.get(total).value = t - 1;
			} 
		}
		t = parseInt($D.get(total).value);	
		if(t == 1) {
			$D.setStyle($D.get(button_add), 'display', '');
			$D.setStyle($D.get(button_remove), 'display', 'none');
		} else if(t == 10) {
			$D.setStyle($D.get(button_add), 'display', 'none');
			$D.setStyle($D.get(button_remove), 'display', '');
		} else {
			$D.setStyle($D.get(button_add), 'display', '');
			$D.setStyle($D.get(button_remove), 'display', '');			
		}
	},
	
	initListaDesejo: function() {
		var cookie = Rits.Util.getCookie('miranda-lista');
		
		var id;
		if(cookie) {
			var a = cookie.split(',');
			for(var i=0; i<a.length; i++) {
				id = a[i];				
				if($D.get('img-lista-'+id)) {					
					$D.get('img-lista-'+id).src = $D.get('img-lista-'+id).src.replace('button_add_listadedesejos.png', 'button_remove_listadedesejos.png');
					if($D.get('count-manager-'+id)) {
						$D.get('count-manager-'+id).style.display = 'block';
					}
				}
			}
		}
	},
	
	changeListaDesejo: function(id) {
		var cookie = Rits.Util.getCookie('miranda-lista');
		if(cookie) {
			var a = cookie.split(',');
			var a_final = new Array();
			var j = 0;
			var ok = true;
			for(var i=0; i<a.length; i++) {
				if(a[i] == id) {
					ok = false;
				} else {
					a_final[j++] = a[i];
				}
			}
			if(ok) {
				a_final[j++] = id;
			}
			cookie = a_final.join(',');			
			Rits.Util.setCookie('miranda-lista', cookie, 30, '/');
			
			if(ok) {				
				$D.get('img-lista-'+id).src = $D.get('img-lista-'+id).src.replace('button_add_listadedesejos.png', 'button_remove_listadedesejos.png');
				if($D.get('count-manager-'+id)) {
					$D.get('count-manager-'+id).style.display = 'block';
				}
			} else {				
				$D.get('img-lista-'+id).src = $D.get('img-lista-'+id).src.replace('button_remove_listadedesejos.png', 'button_add_listadedesejos.png');
				if($D.get('count-manager-'+id)) {
					$D.get('count-manager-'+id).style.display = 'none';
				}
			}
		} else {			
			Rits.Util.setCookie('miranda-lista', id, 30, '/');			
			$D.get('img-lista-'+id).src = $D.get('img-lista-'+id).src.replace('button_add_listadedesejos.png', 'button_remove_listadedesejos.png');
		}
	},
	
	addItemListaDesejo: function(id) {
		var cookie = Rits.Util.getCookie('miranda-lista');
		if(cookie) {
			var a = cookie.split(',');
			a[a.length] = id;
			cookie = a.join(',');			
			Rits.Util.setCookie('miranda-lista', cookie, 30, '/');
		}
		$D.get('qtd-'+id).innerHTML = parseInt($D.get('qtd-'+id).innerHTML) + 1;
	},
	
	removeItemListaDesejo: function(id) {
		var cookie = Rits.Util.getCookie('miranda-lista');		
		if(cookie) {
			var a = cookie.split(',');
			for(var i=0; i<a.length; i++) {
				if(a[i] == id) {					
					a.splice(i, 1);					
					cookie = a.join(',');
					Rits.Util.setCookie('miranda-lista', cookie, 30, '/');
					if(parseInt($D.get('qtd-'+id).innerHTML) > 1) {
						$D.get('qtd-'+id).innerHTML = parseInt($D.get('qtd-'+id).innerHTML) - 1;
					} else {						
						$D.get('img-lista-'+id).src = $D.get('img-lista-'+id).src.replace('button_remove_listadedesejos.png', 'button_add_listadedesejos.png');
						$D.get('count-manager-'+id).style.display = 'none';
					}
					
					break;
				}				
			}			
		}
	},
	
	removeAllListaDesejo: function(id) {
		var cookie = Rits.Util.getCookie('miranda-lista');
		if(cookie) {
			var a = cookie.split(',');
			var a_final = new Array();
			var j = 0;
			var ok = true;
			for(var i=0; i<a.length; i++) {
				if(a[i] == id) {
					ok = false;
				} else {
					a_final[j++] = a[i];
				}
			}
			if(ok) {
				a_final[j++] = id;
			}
			cookie = a_final.join(',');	
		}
		Rits.Util.setCookie('miranda-lista', cookie, 30, '/');		
		$D.get('img-lista-'+id).src = $D.get('img-lista-'+id).src.replace('button_remove_listadedesejos.png', 'button_add_listadedesejos.png');
		$D.get('count-manager-'+id).style.display = 'none';
	},
		
	sendListadedesejos: function(layer, form) {		
		var uploadHandler = {
			success: function(o) {				
				Rits.Ajax.hideOverlay(layer);
				if(o.responseText == 'true') {					
					alert(Rits.Language.get('site.senditem.success'));
					
					form.SEN_TO_NAME.value = '';
					form.SEN_TO_EMAIL.value = '';
                    form.SEN_TO_EMAIL2.value = '';
                    form.SEN_DESCRIPTION.value = '';
					
				} else {
					alert(o.responseText);
					alert(Rits.Language.get('site.senditem.error'));
				} 
			},
			
			failure: function(o) {
				alert(Rits.Language.get('site.senditem.error'));
				Rits.Ajax.hideOverlay(layer);
			}
		};
		
		var to_name = form.SEN_TO_NAME.value;
		var to_email = form.SEN_TO_EMAIL.value;
		var to_email2 = form.SEN_TO_EMAIL2.value;
		
		if(!(to_name.length && to_email.length && Rits.Validate.isEmail(to_email) && to_email2.length && Rits.Validate.isEmail(to_email2)  )) {
			alert(Rits.Language.get('validation.message.form'));			
		} else {
		
			var url = '/lista-de-desejos/send/';
			
			Rits.Ajax.displayOverlay(layer);
			Rits.Ajax.submitForm(form, url, uploadHandler, true);
		}
		
	},
	
	saveForm: function(form, layer) {
		url = form.action;
		
		var uploadHandler = {
			upload: function(o) {				
				Rits.Ajax.hideOverlay(layer);				
				$D.get(layer).innerHTML = o.responseText;
				Rits.Site.parseScript(o.responseText);
			}
		};
		Rits.Ajax.displayOverlay(layer);
		Rits.Ajax.submitForm(form, url, uploadHandler);
	},
	
	parseScript: function(_source) {
		var source = _source;
		var scripts = new Array();
		
		// Strip out tags
		while(source.indexOf("<script") > -1 || source.indexOf("</script") > -1) {
			var s = source.indexOf("<script");
			var s_e = source.indexOf(">", s);
			var e = source.indexOf("</script", s);
			var e_e = source.indexOf(">", e);
			
			// Add to scripts array
			scripts.push(source.substring(s_e+1, e));
			// Strip from source
			source = source.substring(0, s) + source.substring(e_e+1);
		}
		
		// Loop through every script collected and eval it
		for(var i=0; i<scripts.length; i++) {
			try {
				eval(scripts[i]);
			}
			catch(ex) {
				// do what you want here when a script fails
			}
		}
		
		// Return the cleaned source
		return source;
	},
    
    sendForm: function(form) {
        name = form.PRU_NAME.value;
        email = form.PRU_EMAIL.value;
        phone = form.PRU_PHONE2.value;
        
        if(!(name.length && email.length && Rits.Validate.isEmail(email) && phone.length)) {
            alert('Os campos são obrigatórios.');
        } else {
            form.submit();
        }
    }
};
