// global variables //
var TIMER = 5;
var SPEED = 10;
var WRAPPER = 'container';
var linkToOpen = '';
var IsPlayer = false;



// build/show the dialog box, populate the data and call the fadeDialog function //
function showDialog(hrefValue, player) {
    linkToOpen = hrefValue;
    if (player == null || player == undefined)
        IsPlayer = false
    else
        IsPlayer = true;


    if (IsRegistered != undefined && IsRegistered == 1) {
        if (IsPlayer)
            createPlayer(linkToOpen);
        else
            window.open(linkToOpen, "_blank");
        return;
    }
    var dialog;
    var dialogheader;
    var dialogclose;
    var dialogtitle;
    var dialogcontent;
    var dialogmask;

    if (!document.getElementById('dialog')) {
        dialog = document.createElement('div');
        dialog.id = 'dialog';
        dialogheader = document.createElement('div');
        dialogheader.id = 'dialog-header';
        dialogtitle = document.createElement('div');
        dialogtitle.id = 'dialog-title';
        dialogclose = document.createElement('div');
        dialogclose.id = 'dialog-close'
        dialogcontent = document.createElement('div');
        dialogcontent.id = 'dialog-content';
        dialogmask = document.createElement('div');
        dialogmask.id = 'dialog-mask';
        document.body.appendChild(dialogmask);
        document.body.appendChild(dialog);
        dialog.appendChild(dialogheader);
        dialogheader.appendChild(dialogtitle);
        dialogheader.appendChild(dialogclose);
        dialog.appendChild(dialogcontent); ;
        dialogclose.setAttribute('onclick', 'hideDialog()');
        dialogclose.onclick = hideDialog;
    }
    else {
        dialog = document.getElementById('dialog');
        dialogheader = document.getElementById('dialog-header');
        dialogtitle = document.getElementById('dialog-title');
        dialogclose = document.getElementById('dialog-close');
        dialogcontent = document.getElementById('dialog-content');
        dialogmask = document.getElementById('dialog-mask');
        dialogmask.style.visibility = "visible";
        dialog.style.visibility = "visible";
    }
    dialog.style.opacity = .00;
    dialog.style.filter = 'alpha(opacity=0)';
    dialog.alpha = 0;
    var width = pageWidth();
    var height = pageHeight();
    var left = leftPosition();
    var top = topPosition();
    var dialogwidth = dialog.offsetWidth;
    var dialogheight = dialog.offsetHeight;
    var topposition = top + (height / 3) - (dialogheight / 2);
    var leftposition = left + (width / 2) - (dialogwidth / 2);
    dialog.style.top = topposition + "px";
    dialog.style.left = leftposition + "px";
    dialogheader.className = "warningheader";
    dialogtitle.innerHTML = "Registration Form";
    dialogcontent.className = "warning";
    regFormObj = document.getElementById('registrationForm');
    regFormObj.style.display = 'block';
    dialogcontent.appendChild(regFormObj);
    var content = document.getElementById(WRAPPER);
    dialogmask.style.height = content.offsetHeight + 'px';
    dialog.timer = setInterval("fadeDialog(1)", TIMER);
    dialogclose.style.visibility = "visible";
    dialogclose.title = "Close";
}


// hide the dialog box //
function hideDialog() {
    var dialog = document.getElementById('dialog');
    clearInterval(dialog.timer);
    dialog.timer = setInterval("fadeDialog(0)", TIMER);
}

// fade-in the dialog box //
function fadeDialog(flag) {
    if (flag == null) {
        flag = 1;
    }
    var dialog = document.getElementById('dialog');
    var value;
    if (flag == 1) {
        value = dialog.alpha + SPEED;
    } else {
        value = dialog.alpha - SPEED;
    }
    dialog.alpha = value;
    dialog.style.opacity = (value / 100);
    dialog.style.filter = 'alpha(opacity=' + value + ')';
    if (value >= 99) {
        clearInterval(dialog.timer);
        dialog.timer = null;
    } else if (value <= 1) {
        dialog.style.visibility = "hidden";
        document.getElementById('dialog-mask').style.visibility = "hidden";
        clearInterval(dialog.timer);
    }
}

// calculate the current window width //
function pageWidth() {
    return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
}

// calculate the current window height //
function pageHeight() {
    return window.innerHeight != null ? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null ? document.body.clientHeight : null;
}

// calculate the current window vertical offset //
function topPosition() {
    return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
}

// calculate the position starting at the left of the window //
function leftPosition() {
    return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
}

function checkFocus(text, inputObj) {
    if (document.getElementById(inputObj).value == text)
        document.getElementById(inputObj).value = "";
}

function checkBlur(text, inputObj) {
    if (document.getElementById(inputObj).value == "")
        document.getElementById(inputObj).value = text;
}

function sendDetails() {
    // collect the data , serailise and send back to the server using ajax and then redirect to the link to continue
    var title = document.getElementById('txttitle').value;
    var fname = document.getElementById('txtfname').value;
    var lname = document.getElementById('txtlname').value;
    var email = document.getElementById('txtemail').value;
    var contact = document.getElementById('txtcontact').value;
    var company = document.getElementById('txtcompany').value;
    var size = document.getElementById('txtsize').value;
    var region = document.getElementById('txtregion').value;
    var zipcode = document.getElementById('txtzipcode').value;

    // Do the validation here
    if (fname == "First Name") {
        alert("Please provide the first name.");
        document.getElementById('txtfname').focus();
        return false;
    }
    else if (lname == "Last Name") {
        alert("Please provide the last name.");
        document.getElementById('txtlname').focus();
        return false;
    }
    else if (email == "Email" || email.indexOf('@') == -1 || email.indexOf('.') == -1) {
        alert("Please provide a valid Email ID.");
        document.getElementById('txtemail').focus();
        return false;
    }
    else if (company == "Company") {
        alert("Please provide your company name");
        document.getElementById('txtcompany').focus();
        return false;
    }

    document.getElementById("loader").style.display = "block";

    var param = title + ';' + fname + ';' + lname + ';' + email + ';' + contact + ';' + company + ';' + size + ';' + region + ';' + zipcode + ';' + linkToOpen;

    var xmlhttp;
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
    else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            // redirect to the link to continue
            //alert(xmlhttp.responseText);
            if (xmlhttp.responseText == "1") {

                document.getElementById('dialog-close').click();
                document.getElementById("loader").style.display = "block";
                IsRegistered = 1;
                if (IsPlayer) {
                    createPlayer(linkToOpen);
                }
                else
                    window.open(linkToOpen, "_blank");
                    
            }
            else {
                alert("Error: " + xmlhttp.responseText);
                document.getElementById('dialog-close').click();
                document.getElementById("loader").style.display = "none";
            }
        }
    }
    xmlhttp.open("GET", "./ajaxhandler.aspx?data=" + param, true);
    xmlhttp.send(null);
    return false;

}