﻿var pars = [];
var hasCenterOpen = false;
var http_request = false;

function createElement(tag, elm, para) {
    var obj = document.createElement(tag)
    if (para) {
        if (para.className) obj.className = para.className
        if (para.id) obj.id = para.id
        if (para.href) obj.href = para.href
        if (para.src) obj.src = para.src
        if (para.html) obj.innerHTML = para.html
        if (para.element) obj.appendChild = para.element
        if (para.onclick) obj.onclick = para.onclick
        if (para.alt) obj.alt = para.alt
        if (para.title) obj.title = para.title
    }
    elm.appendChild(obj)
    return obj
}
function findByClassName(className, parentElement) {
    var children = ((jQuery(parentElement) && jQuery(parentElement).length > 0) || document.body).getElementsByTagName('*');
    return $A(children).inject([], function(elements, child) {
        if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
            elements.push(child);
        return elements;
    });
}

jQuery(document).ready(function() {
    jQuery('#modal-callback .simplemodal-send:not(.disabled)').live('click', handleWebcallback);
});

function handleWebcallback(e) {
        e.preventDefault();
        jQuery(this).addClass('disabled');
        // validate form
        if (validate()) {
            var msg = jQuery('#modal-callback .contact-message');
            msg.fadeOut(function() {
                msg.removeClass('contact-error').empty();
            });
            jQuery('#modal-callback .progress').html('Sending...');
            jQuery('#modal-callback .callbackRemote').fadeIn(200, function() {
                var parameters = getParameters();
                makeGETRequest("/webcallback/servercallback.aspx" + parameters);
            });
        }
        else {
            jQuery(this).removeClass('disabled');
        }
    }

function validate() {
    var success = true;
    if (!jQuery('#modal-callback #cbName').val()) {
            jQuery('#modal-callback #errorWName').removeClass('hidden');
	    jQuery('#modal-callback #errorWName').addClass('error');
	    jQuery('#modal-callback #cbName').blur(function(e) {
		if (this.value != '') 
		{
        	    jQuery('#modal-callback #errorWName').removeClass('error');
		    jQuery('#modal-callback #errorWName').addClass('hidden');	
		}
		else
		{
        	    jQuery('#modal-callback #errorWName').removeClass('hidden');
		    jQuery('#modal-callback #errorWName').addClass('error');	
		}

	    });
	    success = false;
	}
	jQuery('#modal-callback #cbNumber').blur(function(e) {
	    if (this.value != '') {
	        if (phoneValidate(this.value)) {
	            jQuery('#modal-callback #errorWPhone').removeClass('error');
	            jQuery('#modal-callback #errorWPhone').addClass('hidden');
	            jQuery('#modal-callback #invalidWPhone').removeClass('error');
	            jQuery('#modal-callback #invalidWPhone').addClass('hidden');
	        }
	        else {
	            jQuery('#modal-callback #errorWPhone').removeClass('error');
	            jQuery('#modal-callback #errorWPhone').addClass('hidden');
	            jQuery('#modal-callback #invalidWPhone').addClass('error');
	            jQuery('#modal-callback #invalidWPhone').removeClass('hidden');
	        }
	    }
	    else {
	        jQuery('#modal-callback #errorWPhone').addClass('error');
	        jQuery('#modal-callback #errorWPhone').removeClass('hidden');
	        jQuery('#modal-callback #invalidWPhone').addClass('hidden');
	        jQuery('#modal-callback #invalidWPhone').removeClass('error');
	    }
	});


	if (!jQuery('#modal-callback #cbNumber').val()) {
        jQuery('#modal-callback #errorWPhone').removeClass('hidden');
        jQuery('#modal-callback #errorWPhone').addClass('error');
        jQuery('#modal-callback #invalidWPhone').removeClass('error');
        jQuery('#modal-callback #invalidWPhone').addClass('hidden');
        
	    success = false;
	}
	else {
	    jQuery('#modal-callback #errorWPhone').addClass('hidden');
	    jQuery('#modal-callback #errorWPhone').removeClass('error');

	    if (phoneValidate(jQuery('#modal-callback #cbNumber').val())) {
	        jQuery('#modal-callback #invalidWPhone').removeClass('error');
	        jQuery('#modal-callback #invalidWPhone').addClass('hidden');
	    }
	    else {
	        jQuery('#modal-callback #invalidWPhone').addClass('error');
	        jQuery('#modal-callback #invalidWPhone').removeClass('hidden');
	        success = false;
	    }
	}

	if (!success) {
		return false;
	}
	else {
		return true;
	}
}
function phoneValidate(phone) {
    var reg = /^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$/;
    if (!reg.test(phone)) {
        return false;
    }
    return true;
}
function makeGETRequest(url) {
    http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            // set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) { }
        }
    }
    if (!http_request) {
        alert('Cannot create XMLHTTP instance');
        return false;
    }

    http_request.onreadystatechange = onStateChanged;
    http_request.open('GET', url, true);
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Connection", "close");
    http_request.send(null);
}

function onStateChanged() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            jQuery('#modal-callback .progress').html('Done!!!');
	    jQuery('#modal-callback .callbackRemote').addClass('hidden');
	    jQuery('#modal-callback .callbackRemoteFinished').removeClass('hidden');
	    jQuery('#modal-callback .callbackRemoteCenterClosed').addClass('hidden');
	    } else if (http_request.status == 999) {
            jQuery('#modal-callback .progress').html('Done!!!');
            jQuery('#modal-callback .callbackRemote').addClass('hidden');
            jQuery('#modal-callback .callbackRemoteFinished').addClass('hidden');
            jQuery('#modal-callback .callbackRemoteCenterClosed').removeClass('hidden');
        } else {
            jQuery('#modal-callback .progress').html('<span class="error">There was a problem with the request. Error: ' + http_request.status + '</span>');
        }
        jQuery('#modal-callback .simplemodal-send').removeClass('disabled');
    }
}


function getParameters() {
    var params = "?cbName=" + encodeURI(document.getElementById("cbName").value).replace(/&/g, '|ampersand|') +
                  "&cbNumber=" + encodeURI(document.getElementById("cbNumber").value).replace(/&/g, '|ampersand|') +
                  "&cbSubject=" + encodeURI(document.getElementById("cbSubject").value).replace(/&/g, '|ampersand|') +
                  "&cbQueue=" + encodeURI(document.getElementById("cbQueue").value) +
                  "&hidCallbackPageUrl=" + encodeURI(document.getElementById("hidCallbackPageUrl").value);
	return params;
}

function setFormValues(form) {
    if (!form) return;
    form.cbName.value = document.getElementById("cbName").value;
    form.cbNumber.value = document.getElementById("cbNumber").value;
    form.cbSubject.value = document.getElementById("cbSubject").value;
    form.q.value = document.getElementById("cbQueue").value;
}

function makeWebCallback(obj) {
    if (!obj.action) return;
    var poststr = "cbName=" + encodeURI(obj.cbName.value) +
                  "&cbNumber=" + encodeURI(obj.cbNumber.value) +
                  "&cbSubject=" + encodeURI(obj.cbSubject.value) +
                  
                  "&interactionId=" + encodeURI(obj.interactionId.value) +
                  "&ctxId=" + encodeURI(obj.ctxId.value) +
                  "&q=" + encodeURI(obj.q.value) +
                  "&userId=" + encodeURI(obj.userId.value) +
                  "&userName=" + encodeURI(obj.userName.value) +
                  "&customInfo=" + encodeURI(obj.customInfo.value) +
                  "&cbText=" + encodeURI(obj.cbText.value) +
                  "&statusCode=" + encodeURI(obj.statusCode.value) +
                  "&hasPolled=" + encodeURI(obj.hasPolled.value);
    makeGETRequest(obj.action, poststr);
}







