HANZO = {};

HANZO.cdweb = function () {

	var provider = "1418";

	var cycleIp = '200.155.11.162';



	var cycleHost = 'http://' + cycleIp + '/hanzo/';



	var mediaHost = 'http://www.brejo.com/mobile/sms/';



	var cdweb_action = 'http://cdweb.hanzo.com.br/cdweb/subscribeRedirectChannel.do';



	var vivo_proxy = 'http://200.155.11.162/hanzo/cdweb_proxy.asp';

	

	var vivoPage = "vivo_brejo.com.html";

	var subscribePage = "subscribe.html";

	var successPage = "success.html";

	var errorPage = "error.html";

	var sendTokenPage = "index_210x90.html";

	

	//var vivoToken = cycleHost + vivoPage;
	var vivoToken = mediaHost + vivoPage;

	var sendToken = mediaHost + sendTokenPage;		

	var subscribe = mediaHost + subscribePage;

	var success = mediaHost + successPage;

	var error = mediaHost + errorPage;



	var popx = 300;

	var popy = 300;



	var result = '_BREJO';

	var validateForm;		

	var page;

	// Messages

	var NO_MOBILE = "Por favor preencha o numero do seu celular com o codigo de area";

	var ONLY_NUMBERS = "O campo celular so pode conter numeros!";

	var NO_CHANNEL = "Voce deve escolher um canal para assinar.";

	var NO_CARRIER = "Por favor, escolha uma operadora."

	function addOption(el, pair) {

		var op = document.createElement('option');

		op.value = pair[0];

		op.text = pair[1];

		try{

			el.add(op, null);//W3C

		}catch(e){

			el.add(op);//IE only

		}	

	}

	function isVivo() {

		return page === vivoToken;

	}



	function addHidden(el, pair) {

		var ipt;

		  try {// Hack due to IE's bad DOM implementation

		    ipt = document.createElement("<input name="+pair[1]+">");

		  } catch (e) { }

		  if (!ipt || !ipt.name) { // Not in IE, then... Standards

		    ipt = document.createElement('input')

		    ipt.name = pair[1];

		  }

		ipt.type = 'hidden';

		ipt.value = pair[0];

		el.appendChild(ipt);

	}

	function renderForm(hanzo_form) {

		var carrier = hanzo_form.carrier;

	  

		addHidden(hanzo_form, ["1078", "channelId"]);

		

		addOption(carrier, [0, "Sua operadora"]);

		addOption(carrier, [1007, "Amazonia Celular"]);

		addOption(carrier, [1006, "Brasil Telecom"]);

		addOption(carrier, [1010, "Claro"]);

		addOption(carrier, [1002, "CTBC"]);

		addOption(carrier, [1001, "Oi"]);

		addOption(carrier, [1009, "Sercomtel"]);

		addOption(carrier, [1007, "Telemig / Vivo"]);

		addOption(carrier, [1004, "Vivo"]);

	}

	function populateFields(hanzo_form,service,provider,action,sendToken,subscribe,success,error,form_action,form_target){

		hanzo_form.action = form_action;

		hanzo_form.target = form_target;

		hanzo_form.onSubmit = "return false";

		hanzo_form.method = "post";

		

		addHidden(hanzo_form, ["true", "sendDisabled"]);

		addHidden(hanzo_form, [service, "serviceId"]);

		addHidden(hanzo_form, [provider, "providerId"]);

		addHidden(hanzo_form, [action, "action"]);

		addHidden(hanzo_form, [sendToken, "sendTokenURL"]);

		addHidden(hanzo_form, [subscribe, "subscribeURL"]);

		addHidden(hanzo_form, [success, "successURL"]);

		addHidden(hanzo_form, [error, "errorURL"]);

		if (hanzo_form.mobileDefault === undefined) {

			addHidden(hanzo_form, ["ex:8300000001", "mobileDefault"]);

		}

	}

	function validateChannelForm(hanzo_form) {

		var hanzo_val = hanzo_form.mobile.value;

		if (hanzo_val.charAt(0) === '0'){

			hanzo_form.mobile.value = hanzo_val = hanzo_val.substring(1, 11);

		}

		if (hanzo_val === null || hanzo_val.length !== 10) {

		   HANZO.cdweb.displayMessage(NO_MOBILE);

		   hanzo_form.mobile.focus();

		   return false;

		} 

		if (!isInteger(hanzo_val)) {

		   HANZO.cdweb.displayMessage(ONLY_NUMBERS);

		   hanzo_form.mobile.focus();

		   return false;

		}

		if (hanzo_form.channelId.value === '0') {

			HANZO.cdweb.displayMessage(NO_CHANNEL);

			return false;

		}

		return true;

	}

	function validateTokenForm(hanzo_form) {

		var val = hanzo_form.token.value;

		if (val === null || val === "" || val.length !== 5) {

	   		alert("Por favor preencha o campo senha");

	   		hanzo_form.token.focus();

	   	return false;

		} 

	return true;1070

	}

	function populateHanzoForm(hanzo_form, hanzo_type) {

		switch(hanzo_type){

			case 1: renderForm(hanzo_form); populateFields(hanzo_form,"1",provider,"1",sendToken,subscribe,success,error,cdweb_action,result); break;

			case 2: populateFields(hanzo_form,"1",provider,"2","","",success,error,cdweb_action,result); break;  

			case 4: renderForm(hanzo_form); populateFields(hanzo_form,"1",provider,"1",vivoToken,'',success,error,vivo_proxy,result); break; 

		}

	}

	function initForm(hanzo_form) {

		hanzo_form.mobile.maxLength = hanzo_form.mobileDefault.value.length;

		hanzo_form.mobile.size = hanzo_form.mobileDefault.value.length;

		hanzo_form.mobile.value = hanzo_form.mobileDefault.value;

		disableFields(hanzo_form, true);

		hanzo_form.carrier.selectedIndex = 0;

	}

	function disableFields(hanzo_form, hanzo_b) {

		hanzo_form.mobile.disabled = hanzo_b;

		hanzo_form.sendDisabled.value = hanzo_b;

	}

	function PageQuery(hanzo_q) {

		if (hanzo_q.length > 1) this.hanzo_q = hanzo_q.substring(1, hanzo_q.length);

		else this.hanzo_q = null;

		this.keyValuePairs = new Array();

		if (hanzo_q) {

			for(var hanzo_i = 0; hanzo_i < this.hanzo_q.split("&").length; hanzo_i++) {

				this.keyValuePairs[hanzo_i] = this.hanzo_q.split("&")[hanzo_i];

			}

		}

		

		this.getKeyValuePairs = function() { return this.keyValuePairs; }

		

		this.getValue = function(hanzo_s) {

			for(var hanzo_j = 0; hanzo_j < this.keyValuePairs.length; hanzo_j++) {

				if (this.keyValuePairs[hanzo_j].split("=")[0] == hanzo_s) {

					return this.keyValuePairs[hanzo_j].split("=")[1];

				}

			}

			return false;

		}

		this.getParameters = function() {

			var hanzo_a = new Array(this.getLength());

			for(var hanzo_j = 0; hanzo_j < this.keyValuePairs.length; hanzo_j++) {

				a[hanzo_j] = this.keyValuePairs[hanzo_j].split("=")[0];

			}

			return hanzo_a;

		}

		this.getLength = function() { return this.keyValuePairs.length; }

	}

	function queryString(hanzo_key) {

		var hanzo_page = new PageQuery(window.location.search);

		return unescape(hanzo_page.getValue(hanzo_key));

	}



	function setCarrierAction(carrierId, hanzo_form) {



		hanzo_form.mobile.maxLength = 11;

		if (carrierId === '9999') carrierId = '1004';

		if (carrierId === '0') {

			if (hanzo_form.mobile.value === '') {

				hanzo_form.mobile.maxLength = hanzo_form.mobileDefault.value.length;

				hanzo_form.mobile.size = hanzo_form.mobileDefault.value.length;

				hanzo_form.mobile.value = hanzo_form.mobileDefault.value;

			}

			disableFields(hanzo_form, true);

			

		} else if (carrierId === 'XXXX') {

			if (isVivo()) {

				disableFields(hanzo_form, false);

				if (hanzo_form.mobile.value === hanzo_form.mobileDefault.value) {

					hanzo_form.mobile.value = "";

					hanzo_form.mobile.maxlength = 11;

				}

			hanzo_form.mobile.focus();

			} else {

				window.location = vivoToken + '?o=' + carrierId + '&m=' + hanzo_form.mobile.value;

				initForm(hanzo_form);

			}

		} else {

			if (isVivo()) {

				window.location = sendToken + '?o=' + carrierId + '&m=' + hanzo_form.mobile.value;

			} else {

				disableFields(hanzo_form, false);

				if (hanzo_form.mobile.value === hanzo_form.mobileDefault.value) {

					hanzo_form.mobile.value = "";

					hanzo_form.mobile.maxlength = 11;

				}

				hanzo_form.mobile.focus();

			}

		}

	}

	//Validating functions

	function isDigit(hanzo_num) {

		if (hanzo_num.length > 1) {

			return false;

		}

		var string = "1234567890";

		if (string.indexOf(hanzo_num) !== -1) {

			return true;

		}

		return false;

	}	

	function isInteger(hanzo_val) {

		for(var hanzo_i=0; hanzo_i<hanzo_val.length; hanzo_i++) {

			if (!isDigit(hanzo_val.charAt(hanzo_i))) {return false;}

		}

		return true;

	}

	function getCarrierFromURL() {

		var parameter = queryString('o');

		if (parameter === 'false') {

			parameter = '0';

		}

		return parameter;

	}

	function getChannelFromURL() {

		var parameter = queryString('c');

		if (parameter === 'false') {

			parameter = '0';

		}

		return parameter;

	}

	function getMobileFromURL() {

		var parameter = queryString('m');

		if (parameter === 'false' || parameter === hanzo_form.mobileDefault.value) {

			parameter = hanzo_form.mobileDefault.value;

		}

		return parameter;

	}

	return {		

		

		sendForm: function (hanzo_form) {

			if (hanzo_form.sendDisabled.value === 'false') {

				if (validateForm(hanzo_form)) {

					if (window.name !== result) 

                window.open('', result, 'toolbar = no, width = ' + popx + ', height = ' + popy);

          			hanzo_form.target = result;

          			hanzo_form.submit();

				}

			} else {

				this.displayMessage(NO_CARRIER);

			}

		},

		

		setCarrierAction: setCarrierAction,//exposing the function

		

		displayAction: function (formName) {

			page = window.location.href.split("?")[0]; 

			if (formName) {

				hanzo_form = document.getElementById(formName);

			}

			if (this.displayMessage === undefined) {//just set the way the messages are going to be shown

				this.displayMessage = function (txt) { alert(txt) };

			}

			if (page === sendToken || page === mediaHost) {



				populateHanzoForm(hanzo_form, 1);

				initForm(hanzo_form);

				hanzo_form.mobile.value = getMobileFromURL();

				hanzo_form.carrierId.value = getCarrierFromURL();

				setCarrierAction(hanzo_form.carrierId.value, hanzo_form);

				validateForm = validateChannelForm;

			} else if (page === vivoToken) {

				populateHanzoForm(hanzo_form, 4);

				initForm(hanzo_form);

				hanzo_form.mobile.value = getMobileFromURL();

				hanzo_form.carrierId.value = getCarrierFromURL();

				setCarrierAction(hanzo_form.carrierId.value, hanzo_form);

				validateForm = validateChannelForm;

			} else if (page === subscribe) {

				populateHanzoForm(hanzo_form, 2);

				hanzo_form.sendDisabled.value = false;

				validateForm = validateTokenForm;

			} else if (page === error) {

				var hanzo_action = queryString('action').replace("-", "");

				try{

					document.getElementById("hanzo_msg" + hanzo_action).style.display = "block";

				} catch(err){

					document.getElementById("hanzo_msg1000").style.display="block";

				}

			} else if (page === success) {

				var hanzo_channel = queryString('channel');

				if (hanzo_channel != 'false') {

			        if(document.getElementById) { 

							for (var hanzo_i=0; hanzo_i < 10; hanzo_i++)  hanzo_channel = hanzo_channel.replace("+", " "); 	

			    	} 

					var hanzo_keyword = queryString('keyword');

					if (hanzo_keyword != 'false') {

						if (document.getElementById) { 

							for (var hanzo_i=0; hanzo_i < 10; hanzo_i++)  hanzo_keyword = hanzo_keyword.replace("+"," "); 

							document.getElementById("labelKeyword").innerHTML = hanzo_keyword;

							document.getElementById("labelChannel2").innerHTML = hanzo_channel;

						} 

						document.getElementById("hanzo_msg2").style.display = "block";

					} else {

						document.getElementById("labelChannel1").innerHTML = hanzo_channel;

						document.getElementById("hanzo_msg1").style.display = "block";

					}

				}

			

				var hanzo_opt = queryString('opt');

				if (hanzo_opt !== 'false'){

					document.getElementById("hanzo_msg3").style.display = "block";

					document.getElementById("hanzo_msg4").style.display = "block";

				} else {

					document.getElementById("hanzo_msg5").style.display = "block";

				}

			}

		}	

		//	

	};

} ();




