/*	Global Javascript Functions
	- dependent on jquery library (/js/jquery.js)
	  and any referenced plugins
---------------------------------------------------	*/
// alias vml-specific jquery functions
var vml = jQuery.noConflict();

vml(document).ready(function()
{
    // set overlabel
	vml("#login .over").labelOver("over");
	
	try
	{
        Shadowbox.init();
    }
    catch(err) { }
});

// positon labels over inputs
vml.fn.labelOver = function(overClass) {
	return this.each(function() {
		var label = vml(this);
		var f = label.attr('for');
		if (f) {
			var input = vml('#' + f);
			this.hide = function() {
				label.css({ textIndent: -10000 })
			}
			this.show = function() {
				if (input.val() == '') label.css({ textIndent: 0 })
			}
			// handlers
			input.focus(this.hide);
			input.blur(this.show);
			label.addClass(overClass).click(function(){ input.focus() });
			if (input.val() != '') this.hide();
		}
	});
}

// Demo functions

var cookieName = "emergitech";


function saveDemoComplete()
{
    var cookie = "demo";
    
    setCookie(cookieName, cookie, 30);
}

function loadAnswersFromDemo(agency, size, priority)
{
    loadCheckList('agency_type', agency);
    loadCheckList('priorities', priority);
    loadRadioList('population_size', size);
}

function loadRadioList(fieldName, fieldValues)
{
    var fields = vml('#' + fieldName + ' ~ ol > li > input');
    loadFields(fields, fieldValues);
}

function loadCheckList(fieldName, fieldValues)
{
    var fields = vml('#' + fieldName + ' input');
    loadFields(fields, fieldValues);
}

function loadFields(fields, values)
{
    if (fields != null && values != null)
    {
        if (values.length > 1)
        {
            for (var x = 0; x < fields.length; x++)
            {
                if (jQuery.inArray(x, values) != -1)
                    fields[x].checked = true;
            }
        }
        else
        {
            var input = fields[values];
            if (input != null)
                input.checked = true;
        }
    }
}



// http://w3schools.com/js/js_cookies.asp

function setCookie(c_name, value, expiredays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + "=" + escape(value) 
                        + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}

function getCookie(c_name)
{
    if (document.cookie.length > 0)
    {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1)
        { 
            c_start = c_start + c_name.length + 1; 
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) 
                c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        } 
    }
    return "";
}

// Validation functions for workarea

function validate_confirm_email_address(confirmText)
{
    return confirm_field(confirmText, 'email_address');
}

function validate_confirm_password(confirmText)
{
    return confirm_field(confirmText, 'password');
}

function confirm_field(confirmText, fieldToMatch)
{
    var field = document.getElementById(fieldToMatch);
    if (field != null && field.value.toLowerCase() == confirmText.toLowerCase())
        return true;
    
    return false;
}

// Validation fix for html forms

function add_validation()
{
    SetEkFormState('in');
    
    var aspnetForm = document.getElementById('aspnetForm');
    if (aspnetForm != null)
        aspnetForm.onsubmit = function() { return EkControlFmValidate(this); };
}

function create_validation()
{
    var form_button = document.getElementById('form_button');
    if (form_button != null)
        form_button.onclick = add_validation;
}

//validate maxlength

function enforceMaxLength(control, maxLength)
{
    if (control.value.length > maxLength)
    {
        alert('Let us know what else you would like to see on the site\nMax length is 500 char');
        control.value = control.value.substr(0, maxLength);
    }
}
