var cycleIp = '200.155.11.162';

var cycleHost = 'http://' + cycleIp + '/hanzo/';
var mediaHost = 'http://www.horoscopovirtual.com.br/torpedo/';

var vivoToken = cycleHost + "vivo_hvirtual.html";
//var sendToken = mediaHost + "sendToken.html";
var sendToken = mediaHost + "index.asp";
var timToken = mediaHost + "tim_pop.html";

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

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

var result = '_self';


function populateHanzoForm(hanzo_form,hanzo_type) {
    var provider = "1127";	
    var subscribe = mediaHost + "subscribe.asp";
    var success = mediaHost + "sucesso.asp";
    var error = mediaHost + "erro.asp";

    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 renderForm(hanzo_form) {	
    var channel = hanzo_form.channelId;
    addOption(channel, [0, "Canal..."]);
    addOption(channel, [759, "Áries - HARI"]);
    addOption(channel, [760, "Touro - HTOU"]);
    addOption(channel, [761, "Gêmeos - HGEM"]);
    addOption(channel, [762, "Câncer - HCAN"]);
    addOption(channel, [763, "Leão - HLEA"]);
    addOption(channel, [764, "Virgem - HVIR"]);
    addOption(channel, [765, "Libra - HLIB"]);
    addOption(channel, [766, "Escorpião - HESC"]);
    addOption(channel, [767, "Sagitário - HSAG"]);
	  addOption(channel, [768, "Capricórnio - HCAP"]);
	  addOption(channel, [769, "Aquário - HAQU"]);
	  addOption(channel, [770, "Peixes - HPEI"]);	
	  addOption(channel, [860, "Pensamentos"]);

    var carrier = hanzo_form.carrier;
      addOption(carrier, [0, "Sua Operadora"]);
      addOption(carrier, [1006, "BrT"]);
      addOption(carrier, [1010, "Claro"]);
      addOption(carrier, [1002, "CTBC"]);
      addOption(carrier, [1001, "Oi"]);
      addOption(carrier, [1009, "Sercomtel"]);
	  addOption(carrier, [1007, "Vivo Minas"]);
      addOption(carrier, [1005, "Tim"]);
	  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"]);
}

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 setCarrierAction(carrierId, hanzo_form) {
    hanzo_form.mobile.maxLength = 11;
    var channelSelected  =  hanzo_form.channelId.selectedIndex;
    var channelNameSelected  =  escape(hanzo_form.channelId.options[hanzo_form.channelId.selectedIndex].text);
    var carrierSelected = hanzo_form.carrierId.selectedIndex;
    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 === '8888') {
        window.location = timToken + '?c=' + channelNameSelected;
        initForm(hanzo_form);
    } else if (carrierId === 'XXXX') {
        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();
		if (!isVivo()) {
			window.location = vivoToken + '?c=' + channelSelected + '&o=' + carrierSelected + '&m=' + hanzo_form.mobile.value;
			initForm(hanzo_form);
		}
    } else {
        if (isVivo()) {
            window.location = sendToken + '?c=' + channelSelected + '&o=' + carrierSelected + '&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();
        }
    }
}

function disableFields(hanzo_form, hanzo_b) {
    hanzo_form.mobile.disabled = hanzo_b;
    hanzo_form.sendDisabled.value = hanzo_b;
}

function hanzo_send_form(hanzo_form) {
    if (hanzo_form.sendDisabled.value === 'false') {
        if (validateForm(hanzo_form)) {
            hanzo_form.submit();
        }
    } else {
        alertCarrier();
    }
}
function splitChannelName(name) {
    var text = name.split(" - ");
    if (text[0] === undefined) {
        text[0] = "";
    } else {
        text[0] = unescape(text[0]);
    }
    if (text[1] === undefined) {
        text[1] = "";
    }
    return text;
}
//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;
}
// Query String
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 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 window.location.hostname == cycleIp;
    return window.location.pathname.indexOf("vivo") > 0;
}
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);
}


