﻿var ischatting = false;
var isbilling = false;
var inpayscreen = false;
var cammer = new Object;
var fLoaded = false;
var TimerId = 0;
var clickblock = 5 * 1000;

function _get(val) {
    return document.getElementById(val);
}
function init() {
    var clickText = '<%= Me.GetLocalResourceObject("MovieInit.Text").ToString() %>';
    var prevs = getElementsByClassName(_get("pictures"), "div", "prev");
    var defaultprev = prevs[0];
    var voice = defaultprev.getAttribute("voice");
    var chat = defaultprev.getAttribute("chat");
    if (chat == "True") {
        _get("voiceorchat").value = "chat";
    }
    else {
        _get("voiceorchat").value = "voice";
    }
    swapFilm(defaultprev, defaultprev.id);

    var d = document.location.hostname;
    if (!d) { d = document.location.host; }
    var dd = d.split(".");
    switch (dd[2]) {
        case "nl":
//            _get("conversion").src = "http://www.googleadservices.com/pagead/conversion/1024769612/?label=dPeyCPaj_wEQzPzS6AM&amp;guid=ON&amp;script=0";
            break;
        case "be":
//            _get("conversion").src = "http://www.googleadservices.com/pagead/conversion/1024769612/?label=cbvjCO6k_wEQzPzS6AM&amp;guid=ON&amp;script=0";
            break;
        default: //be
//            _get("conversion").src = "http://www.googleadservices.com/pagead/conversion/1024769612/?label=cbvjCO6k_wEQzPzS6AM&amp;guid=ON&amp;script=0";
            break;
    }

}

function clTimer() {
    clearTimeout(TimerId);
    TimerId = 0;
}

function swapFilm(what, camid) {
    if (what != null) {
        _get("pay_img").style.backgroundImage = what.style.backgroundImage;
    }
    if (fLoaded == false) { return; }
    selectedcam = _get(camid);
    if (isbilling == true) {
        if (selectedcam.getAttribute("available") == "0") { return; }
        if (TimerId == 0) {
            TimerId = setTimeout("clTimer();", clickblock);
        }
        else {
            return; //prevent piano playing
        }
    }

    _get("camid").value = camid;
    if (ischatting == true) { stopchat(); }

    _get("nickname").innerHTML = selectedcam.getAttribute("nickname");
    _get("age").innerHTML = selectedcam.getAttribute("age");
    _get("region").innerHTML = selectedcam.getAttribute("region");
    _get("languages").innerHTML = selectedcam.getAttribute("languages");
    _get("memo").innerHTML = selectedcam.getAttribute("memo");
    
    _get("p_nickname").innerHTML = selectedcam.getAttribute("nickname");
    _get("p_age").innerHTML = selectedcam.getAttribute("age");
    _get("p_region").innerHTML = selectedcam.getAttribute("region");
    _get("p_languages").innerHTML = selectedcam.getAttribute("languages");
    _get("p_memo").innerHTML = selectedcam.getAttribute("memo");



    vMode("startclip");
    var oCam = new Object;
    oCam.camid = camid;
    oCam.clip = selectedcam.getAttribute("clip");
    oCam.nickname = selectedcam.getAttribute("nickname");
    oCam.video = false;

    showContactOptions(selectedcam.getAttribute("voice"), selectedcam.getAttribute("chat"));

    if (isbilling == true) {
        var oClient = new Object;
        oClient.camid = camid;
        oClient.ivccode = _get("ivccode").value;
        if (_get("voiceorchat").value == "") { _get("voiceorchat").value = "chat" }
        oClient.voiceorchat = _get("voiceorchat").value;
        _get("chatto").value = selectedcam.getAttribute("streamid");
        Thinc.nl.WebService.GetCamObject(oClient, FoundCamObj);
    }
    else {
        try {
            if (fLoaded) {
                _get("myMovie").setCamid(oCam);
            }
        }
        catch (e) { }
    }
    _get("voiceorchat").value = "chat";

}

function vMode(mode) {
    //showJSDebug("vMode " + mode);
    _get("PlayCompleteMsg").style.display = "none";
    _get("chat").style.display = "none";
    _get("chat").style.height = "0%";
    _get("PlayCompleteMsg").style.height = "0%";
    _get("moviecontainer").style.height = "0%";
    switch (mode) {
        case "endclip":
            ischatting ? _get("chat").style.display = "block" : _get("PlayCompleteMsg").style.display = "block";
            ischatting ? _get("chat").style.height = "99%" : _get("PlayCompleteMsg").style.height = "100%";
            break;
        case "startclip":
            _get("moviecontainer").style.height = "100%";
            break;
        case "startchat":
            ischatting = true;
            _get("chat").style.height = "99%";
            _get("chat").style.display = "block";
            break;
        case "stopchat":
            ischatting = false;
            _get("chathistory").innerHTML = "";
            _get("PlayCompleteMsg").style.height = "100%";
            _get("PlayCompleteMsg").style.display = "block";
            break;
        case "connect":
            ischatting = true;
            _get("chat").style.height = "99%";
            _get("chat").style.display = "block";
            _get("moviecontainer").style.height = "100%";
            break;
    }
}

function FoundCamObj(eventArgs) {
    showJSDebug("FoundCamObj");
    if (eventArgs) {
        if (eventArgs.available == true) {
            if (isbilling == true) {
                if (eventArgs.available == false) {
                    //vMode("noconnect");
                    return;
                }
                vMode("connect");
                _get("chatmsg").focus();
            }
            //vMode("startclip");
            var oCam = new Object;
            oCam.camid = eventArgs.camid;
            oCam.clip = eventArgs.clip;
            oCam.nickname = eventArgs.nickname;
            //oCam.video = false;
            try {
                _get("myMovie").setCamid(oCam);
                _get("chatmsg").focus();
            }
            catch (err) {
            }
        }
    }
}

function showContactOptions(voice, chat) {
    //_get("servicenr").style.display = "none";
    voice == "True" ? _get("opt_voice").style.display = "block" : _get("opt_voice").style.display = "none";
    chat == "True" ? _get("opt_chat").style.display = "block" : _get("opt_chat").style.display = "none";
}

function showServiceNr(what, vcOrch) {
    _get("voiceorchat").value = vcOrch;
}

function flashLoaded(ck) { //called from actionscript when connection with fms established
    var ivccode = _get("ivccode").value;
    var culture = _get("culture").value;
    _get("myMovie").setIvcCode(ivccode, culture);
    fLoaded = true;
    init();
    ck.length > 3 ? getLimiteds(ck) : {};
}

function showJSDebug(value) {
    var oDbg = _get("dbgwindow");
    var today = new Date();
    oDbg.innerHTML += today.toLocaleTimeString() + " " + value + "<br />";
    var h = oDbg.scrollHeight;
    oDbg.scrollTop = h;
}

function PlayComplete(value) {
    if (value.code == "NetStream.Play.Complete" && isbilling == false) {
        var insm = _get("chatto").value;
        if (!insm == "") {
            _get("ischatenabled").style.display = "block";
        }
        vMode("endclip");
    }
}

function billingEvent(evt) {
    var action = evt.action;
    isbilling = evt["hook"] == "off";
    var chat = _get("chat");
    hideModalPopup(null);
    if (isbilling == true) {
        _get("cammeroptions").style.display = "none";
        _get("regel1").style.display = "none";
        _get("chatclose").style.display = "none";
        chat.style.display = "block";
        chat.style.height = "95%";
        _get("links").appendChild(chat);
        _get("btnSend").disabled = false;
        _get("chatmsg").disabled = false;
        //_get("conversion").src = "http://www.googleadservices.com/pagead/conversion/1024769612/?label=wwgzCI6L_gEQzPzS6AM&amp;guid=ON&amp;script=0";
        //_get("conversion").src = "http://www.googleadservices.com/pagead/conversion/1024769612/?label=hWINCOal_wEQzPzS6AM&amp;guid=ON&amp;script=0";
        //var eroa_cid = _get("eroa_cid").value;
        //if (eroa_cid.length > 0) {
        //    _get("conversion").src = "http://tracker.ero-advertising.com/tracking/conv.php?cid=" + eroa_cid;
        //}
    }
    else {
        _get("cammeroptions").style.display = "block";
        _get("regel1").style.display = "block";
        _get("chatclose").style.display = "block";
        _get("voiceorchat").value = "chat";
        var m = _get("m");
        m.appendChild(chat);
    }
    //if(evt.ab==false){
        swapFilm(null,evt["camid"]);
    //}
}

function listVideos(videoos) {
    var vidIdx = Math.round(Math.random() * (videoos.length - 1));
    var video = videoos[vidIdx];
    var fEnd = video.lastIndexOf(".");
    var fName = video.substring(0, fEnd);
    cammer.video = fName;
    cammer.hasvideo = true;
}

function keyPress(event, obj) {
    var keycode;
    if (event.which) { // mozilla
        keycode = event.which;
    }
    else {// ie
        keycode = event.keyCode;
    }
    if (keycode == 13 || keycode == 9) { //Enter {
        sendmsg();
        obj.value = "";
        obj.focus();
        return false;
    }
}

function sendmsg() {
    var msg = new Object;
    var ivccode = _get("ivccode").value;
    msg.action = "send";
    msg.to = _get("chatto").value;
    msg.camid = _get("camid").value;
    msg.type = "C";
    msg.ivccode = ivccode;
    msg.fromfms = false;
    msg.text = ivccode + ": " + _get("chatmsg").value;
    _get("chatmsg").value = "";
    Chat(msg);
}

function startchat() { //initiated by client
    var msg = new Object;
    msg.action = "start";
    msg.to = _get("chatto").value;
    msg.ivccode = _get("ivccode").value;
    msg.text = msg.ivccode + " start ";
    msg.camid = _get("camid").value;
    msg.fromfms = false;
    msg.wilchat = true;
    msg.camid = _get("camid").value;
    msg.type = "C";
    vMode("startchat");
    Chat(msg);
}

function stopchat() {
    var msg = new Object;
    msg.action = "stop";
    msg.to = _get("chatto").value;
    msg.ivccode = _get("ivccode").value;
    msg.text = msg.ivccode + " stop ";
    msg.camid = _get("camid").value;
    msg.fromfms = false
    msg.wilchat = false;
    vMode("stopchat");
    Chat(msg);
}

function Chat(msg) {
    showJSDebug("chat " + msg.text);
    var chathistory = _get("chathistory");
    var newEl;
    switch (msg.fromfms) {
        case true: //message from fms
            if (ischatting == false && isbilling == false) {
                vMode("startchat");
                ischatting = true;
            }
            _get("chatto").value = msg.returnto;

            if (!isbilling) {
                _get("btnSend").disabled = false;
                _get("chatmsg").disabled = false;
                if (msg.type == "limiet") {
                    _get("btnSend").disabled = true;
                    _get("chatmsg").disabled = true;
                }
            }

            newEl = chathistory.cloneNode(false);
            newEl.innerHTML = chathistory.innerHTML + "<b class='rx'>" + msg.text + "</b><br />";
            chathistory.parentNode.replaceChild(newEl, chathistory);
            newEl.scrollTop = newEl.scrollHeight;
            if (inpayscreen == false) {
                _get("chatmsg").focus();
            }

            break;
        case false: //message from client
            if (msg.action == "stop") {
                vMode("stopchat");
                chathistory.innerHTML = "";
                ischatting = false;
            }
            else if (msg.action == "start") {
                vMode("startchat");
                _get("btnSend").disabled = false;
                _get("chatmsg").disabled = false;
                chathistory.innerHTML = "";
                _get("chatmsg").focus();
            }
            else {
                msg.text = msg.text.replace(/<.*>/g, ""); //clear tags
                newEl = chathistory.cloneNode(false);
                newEl.innerHTML = chathistory.innerHTML + "<b class='tx'>" + msg.text + "</b><br />";
                chathistory.parentNode.replaceChild(newEl, chathistory);
                newEl.scrollTop = newEl.scrollHeight;
                _get("chatmsg").focus();
            }
            _get("myMovie").Chat(msg);
            break;
    }
}

function getElementsByClassName(oElm, strTagName, strClassName) {
    var arrElements = (strTagName == "*" && oElm.all) ? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for (var i = 0; i < arrElements.length; i++) {
        oElement = arrElements[i];
        if (oRegExp.test(oElement.className)) {
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

function scrollMe(dir) {
    var step = 480;
    var pictures = _get("pictures");
    rLimit = _get("dl_cams").clientWidth - _get("picturecontainer").clientWidth;
    var oldPos = parseInt(pictures.style.left.substring(0, pictures.style.left.length - 2));
    var newPos = eval(parseInt(oldPos) + dir + step);
    if (newPos <= 0) {
        Scroll(dir, oldPos, newPos);
    }
}

function Scroll(dir, oldPos, newPos) {
    var stap = 60;
    var verschil = Math.abs(oldPos - newPos);
    if (verschil == 0) {
        clearTimeout(t);
        return;
    }
    oldPos = eval(parseInt(oldPos) + dir + stap);
    var pictures = _get("pictures");
    pictures.style.left = oldPos + "px";
    var t = window.setTimeout("Scroll('" + dir + "', " + oldPos + "," + newPos + ");", 5);
}

function updateModelsList(streams) {
    var o0 = getElementsByClassName(document.getElementById("pictures"), "span", "o0");
    var o1 = getElementsByClassName(document.getElementById("pictures"), "span", "o1");
    var o = new Array;
    for (var xx = 0; xx < o0.length; xx++) { o.push(o0[xx]); }
    for (xx = 0; xx < o1.length; xx++) { o.push(o1[xx]); }
    for (sp = 0; sp < o.length; sp++) {
        o[sp].className = "o0";
    }
    var cams = getElementsByClassName(document.getElementById("pictures"), "div", "prevs");
    for (var cam in cams) {
        cams[cam].setAttribute("available", "0");
    }

    for (var camid in streams) {
        var oc = _get("sp_" + camid);
        if (oc) {
            oc.className = "o1";
        }
        var oCam = _get(camid);
        if (oCam) {
            oCam.setAttribute("streamid", streams[camid].id);
            oCam.setAttribute("available", "1");
        }
    }
}


window.onload = function () {
    window.focus();
}
window.onunload = function () {
//    Thinc.nl.WebService.ClientLeft(_get("ivccode").value, clleft);
}

function clleft() {
    return false;
}

function initInput(what) {
    if (what.value == "Uw email adres" || what.value == "wachtwoord") {
        what.value = "";
    }
}

function validateLogin() {
    setloginerr("");
    var ok = false;
    var email = document.getElementById("loginname").value;
    if (email.length < 3) { return false; }
    Email1 = /^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;
    Email2 = /^.*@[^_]*$/;
    ok = Email1.test(email) && Email2.test(email);
    if (!ok) {
        setloginerr("Alstublieft een geldig emailadres ingeven");
        return false;
    }
    else {
        var pw = document.getElementById("loginwachtwoord").value;
        if (pw.length < 5 || pw == "wachtwoord") {
            setloginerr("Password moet tenminste 5 tekens bevatten");
            return false;
        }
    }
    return ok;
}
function setloginerr(what) {
    document.getElementById("loginerr").innerHTML = what;
}



