﻿// JScript File
//var _loc = "http://www.UserOverview.com/";
//var _loc = "http://localhost:1340/code/";
//var _loc = "http://localhost/";
var _loc = "";
var cur_q = -1;
var q_type = "-1";
var cur_q_id = -1;
var cur_q_layout = -1;
var sep = "_-_";
var n;
function GenerateArea(domain) {
    if (!domain) {
        var domain = "http://www.useroverview.com/";
        if (window.location.href.indexOf("http://www.useroverview.com/DirectSurvey.aspx?show") == -1)
            document.write("<div id='base_area'><a href='" + domain + "DirectSurvey.aspx?show=" + show + "'>Click here to attend our survey</a></div>");
    }
    else {
        _loc = domain;
        document.write("<div id='base_area' style='width: 0px; height: 0px;'>Loading...</div>");
        var div = document.getElementById("base_area");
        var w = 0, h = 0;
        w = div.parentNode.offsetWidth ? div.parentNode.offsetWidth : 300;
        h = div.parentNode.offsetHeight ? div.parentNode.offsetHeight : 300;
        w = w < 300 ? 300 : w;
        h = h < 400 ? 400 : h;
        div.style.width = w + "px";
        div.style.height = h + "px";
        div.style.overflow = "auto";
        document.write("<script src='" + _loc + "scripts/jquery-1.4.2.min.js' type='text/javascript'></script>");
        document.write("<script src='" + _loc + "scripts/jquery-ui-1.8.custom.min.js' type='text/javascript'></script>");
        document.write("<link type='text/css' href='" + _loc + "styles/jquery-ui-1.8rc3.custom.css' rel='stylesheet' />");
        load_script("UserSurvey.aspx?show=" + show + "&v=1");
    }
}

function load_welcome(num) {
    show_msg("Loading....");
    load_script("NextQuestion.aspx?show=" + show + "&v=1&q=" + num);
} 

function load_question(num) {
    jQuery("#btnstart").hide();
    show_msg("Loading next question....");
    var uid = escape(document.getElementById("US_uid__").value);
    load_script("NextQuestion.aspx?show=" + show + "&uid=" + uid + "&v=1&q=" + num);
    toggle_elem('btnNext', 1);
    n = num
}

function saveSelection() {
    show_msg("Saving now. Please wait...");
    //var postdata = generatePostData(); //For Old Question type only..
    var postdata = getSelectedAnswer();
    load_script("SaveAnswer.aspx?show=" + show + "&q=" + cur_q + "&v=1&ans=" + postdata);
}

function delayedCall(str, timeout, num) {
    var obj = jQuery("#q_area").eq(0);
    if (timeout != undefined) {
        obj.delayedCall(function() {
            str(num)
        }, timeout);
    }
}

function display_error(msg) {
    jQuery("#span_err").eq(0).html(msg);
    show_msg('');
}

/* Generic functions .. */
function add_html(str, area) {
    area = typeof area == 'undefined' ? "q_area" : area;
    var div = document.getElementById(area);
    if (typeof div != 'undefined') {
        div.innerHTML = str;
        if (str.indexOf("<script>") > 0) {
            var script = /<script>(.*)<\/script>/.exec(str);
            if (script && script[1]) {
                eval(script[1]);
            }
        }
    }
}
function load_script(url) {
    _loc = _loc = "" ? 'http://www.UserOverview.com/' : _loc;
    var obj = document.createElement("SCRIPT");
    if (typeof obj != 'undefined') {
        obj.src = _loc + url;
    }
    var h = document.getElementsByTagName("head").item(0);
    if (typeof h != 'undefined') {
        h.appendChild(obj);
    }
}

function show_msg(msg) {
    _loc = _loc = "" ? 'http://www.UserOverview.com/' : _loc;
    var div1 = document.getElementById("m_area");
    div1.innerHTML = msg == "" ? "&nbsp;" : "<img src='" + _loc + "images/working.gif' align='top' />&nbsp;" + msg;
}
/* Generic functions .. */

var dbg;

function generatePostData() {
    var div = document.getElementById("q_area");
    var elems = null;
    var controls = new Array();
    var str = "";
    elems = div.getElementsByTagName("INPUT");
    for (var i = 0; i < elems.length; i++) {
        appendControl(controls, elems[i]);
    }
    elems = div.getElementsByTagName("TEXTAREA");
    for (var i = 0; i < elems.length; i++) {
        appendControl(controls, elems[i]);
    }

    var strData = "";
    for (var i = 0; i < controls.length; i++) {
        strData += controls[i].name + "=" + escape(controls[i].val) + "&";
    }

    //add session id for this user...
    strData += "uid=" + escape(document.getElementById("US_uid__").value);
    var d = new Date();
    strData += "&dt=" + d.getMilliseconds();
    //alert(strData);
    return strData;
}

function close() {
    window.close();
}

var noOfRetry = 0;

function endSurvey_old(timeout, html_msg) {
    var div = document.getElementById("base_area");
    var elems = div.getElementsByTagName("INPUT");
    for (var i = 0; i < elems.length; i++) {
        if (elems[i].type == "button") {
            elems[i].style.display = "none";
        }
    }
    //jQuery("#btnClose").css("display","block");

    var obj = jQuery("#q_area").eq(0);
    var msg = jQuery("#divMsg").eq(0).html();
    if (timeout != undefined) {
        obj.delayedCall(function() {
            //alert('delayed call..');
            jQuery("#powered_by").eq(0).hide();
            jQuery("#sname").eq(0).hide();
            jQuery("#ltlLogo").hide();
            if (msg != null && msg.length > 0) { obj.html(msg); }
            else {
                obj.html(html_msg);
            }
        }, timeout);

    }

}

function endSurvey(thx_msg) {
    var div = document.getElementById("base_area");
    var elems = div.getElementsByTagName("INPUT");
    for (var i = 0; i < elems.length; i++) {
        if (elems[i].type == "button") {
            elems[i].style.display = "none";
        }
    }

    var obj = jQuery("#q_area").eq(0);
    obj.html(thx_msg); 
    jQuery("#powered_by").eq(0).hide();
    jQuery("#sname").eq(0).hide();
}

function redirectPage(timeout, url) {
    endSurvey();
    var obj = jQuery("#q_area").eq(0);
    obj.html("You will shorly redirect to <b>" + url + "</b><br />");
    //obj.append(jQuery("#divMsg").eq(0).html());
    if (timeout != undefined) {
        obj.delayedCall(function() {
            //alert('delayed call..')
            window.location.href = url;
        }, timeout);
    }
}

function appendControl(controls, elem) {
    if (elem.checked) {
        controls.push({ name: elem.name, val: elem.value });
    } else if (elem.type == "text" && elem.value != "") {
        controls.push({ name: elem.name, val: elem.value });
    } else if (elem.type == "textarea" && elem.value != "") {
        controls.push({ name: elem.name, val: elem.value });
    }
}


function toggle_elem(elem_id, status) {
    if (elem_id) {
        var obj = document.getElementById(elem_id)
        if (obj != undefined && obj.style != undefined && obj.style.display != undefined) {
            if (status == 0) {
                obj.style.display = "none";
            } else {
                obj.style.display = "block";
            }
        }
    }
}

function post_HTML_Events(q, opt, qid) {
    q_type = q.split("-")[0];
    cur_q_id = qid;
    cur_q_layout = parseInt(q.split("-")[1]);
    var parent = jQuery("#q_area").eq(0);

    if (q_type == 3) {
        jQuery("#datepicker", parent).datepicker();
    }
    if (q_type == 5) {
        var selOpts = opt.split("\n");
        jQuery("#slider", parent).slider({
            value: 0,
            min: 0,
            max: selOpts.length - 1,
            step: 1,
            slide: function(event, ui) {
                jQuery("#sRate", parent).text(selOpts[ui.value]);
            }
        });
        //jQuery("#slider", parent).removeClass();
        jQuery("#sRate", parent).text(selOpts[jQuery("#slider", parent).slider("value")]);
    }
}

function getSelectedAnswer() {
    var ret = "";
    var arr = null;
    //alert(' getSelectedAnswer \nqtype = '+ q_type + '\n cur_q_id '+ cur_q_id +' \n cur_q '+cur_q);
    switch (q_type) {
        case "comment":
        case "0": //comment box
        case "3": //datepicker
            //case "4"://file upload
            ret = jQuery("#q_area :input[name='t" + cur_q_id + "']").eq(0).val().replace(/'/g, "\\'");
            break;
        case "check":
        case "1": //Multiplec choice - multiple answer checkbox // listbox
            if (cur_q_layout == 1)// list box
                jQuery("#q_area  :input[name='s" + cur_q_id + "']").each(function() {
                    ret += jQuery(this).val() + ",";
                });
            else  //for both old type 'check' and cur_q_layout == 0 //checkbox
                jQuery("#q_area  input:checkbox:checked").each(function() {
                    ret += jQuery(this).val() + ",";
                });
            ret = ret.substring(0, ret.length - 1);
            if (ret.indexOf("-1") != -1)
                ret += '&txtOther=' + escape(jQuery("#q_area :input[name='txtOther" + cur_q_id + "']").eq(0).val().replace(/'/g, "\\'"));
            break;
        case "radio":
        case "2": //Multiplec choice - single answer 
            if (cur_q_layout == 1) // dropdown
                ret = jQuery("#q_area :input[name='s" + cur_q_id + "']").val();
            else
                ret = jQuery("#q_area  input:radio:checked").eq(0).val();
            if (ret && ret.indexOf("-1") != -1)
                ret += '&txtOther=' + escape(jQuery("#q_area :input[name='txtOther" + cur_q_id + "']").eq(0).val());
            break;
        case "5": //rating
            ret = jQuery("#q_area  #sRate").eq(0).text();
            break;
        case "6": //"Multiple TextBox with labels"
        case "9": //"Demographic info"
            jQuery("#q_area  input:text").each(function() {
                ret += jQuery(this).val().replace(/'/g, "\\'") + sep;
            });
            break;
        case "7": // Matrix for single selection
            jQuery("#q_area input:radio:checked").each(function() {
                ret += jQuery(this).attr('id') + sep;
            });
            break;
        case "8": // Matrix for multiple selection
            jQuery("#q_area input:checkbox:checked").each(function() {
                ret += jQuery(this).attr('id') + sep;
            });
            break;
        default:
            ret = "";
            break;
    }
    if (!(ret) || ret == "null") ret = "";
    //else ret = escape(ret);
    //alert(ret);
    ret += "&uid=" + escape(document.getElementById("US_uid__").value);
    var d = new Date();
    ret += "&dt=" + d.getMilliseconds();
    return ret;
}
