/**
 * 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') {
				$(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 = $(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;
		}
	},
				
	/**
	 * 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 {
					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', '/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($(login).value) && $(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) {
		var handleSuccess = function(o) {
			if(o.responseText != 'false') {
				alert(Rits.Language.get('site.newsletter.success'));
			} 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 = $(name_field).value;
		var email = $(email_field).value;
		
		if(name.length == 0 || !(Rits.Validate.isEmail(email))) {
			alert(Rits.Language.get('validation.message.form'));
			return;
		}
		
		Rits.Ajax.displayOverlay(element);
		var request = YAHOO.util.Connect.asyncRequest('GET', '/emails/add/?NAME='+escape(name)+'&EMAIL='+escape(email), callback);
		
	},
	
	sendItem: function(layer, form) {
		
		var uploadHandler = {
			upload: 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'));
				} 
			}
		};
		
		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);
		}
		
	},

	sendCommentary: function(layer, form) {
        
        var handleSuccess = function(o) {
            Rits.Ajax.hideOverlay(layer);
            if(o.responseText == 'true') {
                alert(Rits.Language.get('site.commentary.success'));
                form.COM_NAME.value = '';
                form.COM_EMAIL.value = '';
                form.COM_DESCRIPTION.value = '';
                form.COM_DESCRIPTION_Counter.value = '500';
            } else {                    
                alert(Rits.Language.get('site.commentary.error'));
            } 
        }
        var handleFailure = function(o) {
            alert(Rits.Language.get('site.commentary.error'));
            Rits.Ajax.hideOverlay(element);
        }
        var callback = {
            success: handleSuccess,
            failure: handleFailure
        }        
                
        var name = form.COM_NAME.value;
        var email = form.COM_EMAIL.value;
        var message = form.COM_DESCRIPTION.value;
        
        
        if(!(name.length && ((email.length && Rits.Validate.isEmail(email)) || email.length == 0) && message.length)) {
            alert(Rits.Language.get('validation.message.form'));            
        } else {
        
            var url = '/commentary/save/';            
            Rits.Ajax.displayOverlay(layer);
            Rits.Ajax.submitForm(form, url, callback, true);
        }
        
    },
	
	sendContact: function(layer, form) {
		
		var uploadHandler = {
			upload: function(o) {				
				Rits.Ajax.hideOverlay(layer);
				if(o.responseText == 'true') {					
					alert('Sua dúvida foi enviada com sucesso!');
					form.CON_NAME.value = '';
					form.CON_EMAIL.value = '';
					form.CON_ADDRESS_CITY.value = '';
					form.CON_ADDRESS_STATE.value = '';
					form.CON_ADDRESS_PHONE1.value = '';
					form.CON_ADDRESS_PHONE2.value = '';
					form.CON_COMPANY.value = '';
					form.CON_MESSAGE.value = '';
					form.CON_MESSAGE_Counter.value = '500';
				} else {
					alert('Não foi possível enviar sua dúvida. Por favor tente novamente.');
				}
			}
		};
		
		var name = form.CON_NAME.value;
		var email = form.CON_EMAIL.value;
		var city = form.CON_ADDRESS_CITY.value;
		var phone1 = form.CON_ADDRESS_PHONE1.value;
		var message = form.CON_MESSAGE.value;
		
		if(!(name.length && ((email.length && Rits.Validate.isEmail(email)) || email.length == 0) && message.length && city.length && phone1.length)) {
			alert(Rits.Language.get('validation.message.form'));
		} else {
			var url = '/contact/save/';
			
			Rits.Ajax.displayOverlay(layer);
			Rits.Ajax.submitForm(form, url, uploadHandler);
		}
		
	},
    
    sendContact2: function(layer, form) {
    	var handleSuccess = function(o) {
            Rits.Ajax.hideOverlay(layer);
            if(o.responseText == 'true') {
            	alert('Sua dúvida foi enviada com sucesso!');
                form.CON_NAME.value = '';
                form.CON_EMAIL.value = '';
                form.CON_DESCRIPTION.value = '';
                form.CON_DESCRIPTION_Counter.value = '500';
            } else {                    
            	alert('Não foi possível enviar sua dúvida. Por favor tente novamente.');
            } 
        }
        
        var handleFailure = function(o) {
        	alert('Não foi possível enviar sua mensagem. Por favor tente novamente.');
            Rits.Ajax.hideOverlay(element);
        }
        var callback = {
            success: handleSuccess,
            failure: handleFailure
        }        
                
        var name = form.CON_NAME.value;
        var email = form.CON_EMAIL.value;
        var message = form.CON_DESCRIPTION.value;
        
        
        if(!(name.length && ((email.length && Rits.Validate.isEmail(email)) || email.length == 0) && message.length)) {
        	alert('Por favor preencha corretamente o formulário');          
        } else {
        
        	var url = '/contact/save/';       
            Rits.Ajax.displayOverlay(layer);
            Rits.Ajax.submitForm(form, url, callback, true);
        }        
    },
		
	changeAba: function(n, total, prefix) {
		var lnk, div;
		for(var i=1; i<=total; i++) {
			div = $(prefix+'-content-'+i);
			lnk = $(prefix+'-link-'+i);
			if(i == n) {
				lnk.className = 'on';
				$D.setStyle(div, 'display', '');
			} else {
				lnk.className = 'off';
				$D.setStyle(div, 'display', 'none');
			}
		}
	},
	
	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');
	},
	
	openPdf: function(element) {
		value = $(element).value;
		
		window.open('/novidades/jornal/' + value + '/', '_blank');
	},
	
	/**
	 * Velorio login
	 *
	 * @param string element
	 * @param string seed
	 */
	velorioLogin: function(element, velid, password, seed) {
		
		if(seed) {
			var handleSuccess = function(o) {
				if(o.responseText == 'true') {
					window.location = '/velorio-virtual/assistir/';
				} 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
			}
							
			password = Rits.Crypt.md5(Rits.Crypt.md5($(password).value)+seed);
						
			var request = YAHOO.util.Connect.asyncRequest('GET', '/velorio/login/?VEL_ROOT_ID='+velid+'&PASSWORD='+password, callback);
			
		} else {
						
			var handleSuccess = function(o) {
				if(o.responseText !== undefined) {										
					Rits.Site.velorioLogin(element, velid, 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', '/velorio/login/seed/', callback);
		}
	},
	
	
	/**
	 * Memorial login
	 *
	 * @param string element
	 * @param string seed
	 */
	memorialLogin: function(element, login, password, seed) {
		
		if(seed) {
			var handleSuccess = function(o) {
				if(o.responseText == 'true') {
					window.location = '/memorial-eletronico/visualizar/';
				} 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', '/memorial/login/?MEM_LOGIN='+login+'&PASSWORD='+password, callback);
			
		} else {
						
			var handleSuccess = function(o) {
				if(o.responseText !== undefined) {										
					Rits.Site.memorialLogin(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', '/memorial/login/seed/', callback);
		}
	},
	
	/**
	 * 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);
		}
	},	
	
    /**
     * show
     *
     * @param string id
     * @param string over
     * @param string sub
     */
    show: function(id, over, sub, link) {
        if (document.layers) {
            document.layers[id].display = 'block';
        } else if (document.all) {
            document.all[id].style.display = 'block';
        } else if (document.getElementById) {
            document.getElementById(id).style.display = 'block';
        }    
        document.getElementById(link).style.color="#006825";
        
        $D.setStyle(over, 'display', ''); 
        $D.setStyle(over, 'color', '#006825'); 
        
        document.getElementById(over).style.display = 'block';
    },
    
    /**
     * hide
     *
     * @param string id
     * @param string over
     * @param string sub
     */
    hide: function(id, over, sub, link) {
         $D.setStyle(id, 'display', 'none'); 
         $D.setStyle(over, 'display', 'none'); 
         $D.setStyle(over, 'color', '#ffffff'); 
         document.getElementById(link).style.color="#ffffff";         
    	 
    },
    
    /**
     * sendMural
     *
     * @param string layer
     * @param string form
     */
    sendMural: function(layer, form) {
        
        var handleSuccess = function(o) {
            Rits.Ajax.hideOverlay(layer);
            if(o.responseText == 'true') {
                alert('Mensagem enviada com sucesso.');
                form.MUR_FROM_NAME.value = '';
                form.MUR_FROM_EMAIL.value = '';
                form.MUR_TO_NAME.value = '';
                form.MUR_DESCRIPTION.value = '';
            } else {                    
                alert(o.responseText);
            } 
        }
        var handleFailure = function(o) {
            alert('Erro ao enviar mensagem.');
            Rits.Ajax.hideOverlay(layer);
        }
        var callback = {
            success: handleSuccess,
            failure: handleFailure
        }        
                
        var fromname = form.MUR_FROM_NAME.value;
        var fromemail = form.MUR_FROM_EMAIL.value;
        var toname = form.MUR_TO_NAME.value;
        var message = form.MUR_DESCRIPTION.value;
        
        if(!(fromname.length && ((fromemail.length && Rits.Validate.isEmail(fromemail)) || fromemail.length == 0) && toname.length && message.length)) {
            alert('Preencha todos os campos do formulário corretamente.');            
        } else {
        
            var url = '/mural/save/';            
            Rits.Ajax.displayOverlay(layer);
            Rits.Ajax.submitForm(form, url, callback, true);
        }
        
    },
    
    /**
     * sendMural2
     *
     * @param string layer
     * @param string form
     */
    sendMural2: function(layer, form) {
        
        var handleSuccess = function(o) {
            Rits.Ajax.hideOverlay(layer);
            if(o.responseText == 'true') {
                alert('Mensagem enviada com sucesso.');
                form.MUR_FROM_NAME.value = '';
                form.MUR_FROM_EMAIL.value = '';
                form.MUR_TO_NAME.value = '';
                form.MUR_DESCRIPTION.value = '';
            } else {                    
                alert(o.responseText);
            } 
        }
        var handleFailure = function(o) {
            alert('Erro ao enviar mensagem.');
            Rits.Ajax.hideOverlay(layer);
        }
        var callback = {
            success: handleSuccess,
            failure: handleFailure
        }        
           
        var answer = null;
        for(var i=0; i<form.elements['MUR_OPTION'].length; i++) {
            if(form.elements['MUR_OPTION'][i].checked) {
                answer = form.elements['MUR_OPTION'][i].value;
            }
        }
        
        if(answer == null) {
            alert(Rits.Language.get('validation.message.option'));
            return;
        }        
                
        var fromname = form.MUR_FROM_NAME.value;
        var fromemail = form.MUR_FROM_EMAIL.value;
        var toname = form.MUR_TO_NAME.value;
        var message = form.MUR_DESCRIPTION.value;
        
        if(!(fromname.length && ((fromemail.length && Rits.Validate.isEmail(fromemail)) || fromemail.length == 0) && toname.length && message.length)) {
            alert('Preencha todos os campos do formulário corretamente.');            
        } else {
        
            var url = '/mural/save/';            
            Rits.Ajax.displayOverlay(layer);
            Rits.Ajax.submitForm(form, url, callback, true);
        }
        
    }
    
};

