﻿//next_campaign: "required"

$(document).ready(function() {
    initializeForm();
});


function initializeForm() {
	WireUpSearchButton();
	if($("#postme").length != 0){
	    configureFormBehavior();
      configureToggleBehavior();
      reloadCookie();
    }
    configureSearchButtonBehavior();

}

function configureFormBehavior() {
    var options = {
        beforeSubmit: persistCookies,
        success: redirect,
        iframe: true
    };

    $("#postme").validate({
        rules: {
            name: "required",
            company: "required",
            address1: "required",
            city_state_zip: "required",
            phone: "required",
            email: {
                required: true,
                email: true
            },
            type_business: "required",
            job_function: "required",
            heard_of_eu: "required"
        },
        messages: {
            name: "",
            company: "",
            address1: "",
            city_state_zip: "",
            phone: "",
            email: "",
            type_business: "",
            job_function: "",
            heard_of_eu: "",
            next_campaign: ""
        },
        submitHandler: function(form) {
            jQuery(form).ajaxSubmit(options);
        },
        errorPlacement: function(error, element) {
            if (element.is(":radio"))
                element.parent().children('input').wrap('<span class="error"></span>');
            else if (element.is(":checkbox"))
                element.parent().children('input').wrap('<span class="error"></span>');
            else
                error.appendTo(element.parent());
        }

    });

}

function configureToggleBehavior() {
    $('input[@name=ShowHide]').click(toggleElements);
}

function configureSearchButtonBehavior() {
    $('button.searchBtn').click(function() {
        var searchTerms = $('input.searchText').val();
        window.location = 'searchresults.html?usterms=' + searchTerms + '&ustype=3';
    })
}

function requiresRedirect() {
    return ($('#postme').attr('destination') !== undefined);
}

function redirect(responseText) {
    if (requiresRedirect()) {
        var successfulPost = (responseText === "success");
        if (successfulPost) {
            var destination;
            if (window.location.href.search('ReturnUrl') === -1) {
                destination = $('#postme').attr('destination');
            } else {
                destination = window.location.search.replace('?ReturnUrl=', '')
            }
            window.location = destination;
        } else {
            setStatusMessage(responseText);
        }
    }else{
      var authorizationFailure = (responseText === 'authorization_failure');
      if(authorizationFailure){
        window.location = "../resources.html?ReturnUrl=%2fEU+Website%2fsecure%2flibrarysearch.html";
      }else{
          var resultsContainerAvailable = ($('#dynamicresults').length !== 0);
          if(resultsContainerAvailable){
            $('#dynamicresults').each(function(){this.innerHTML = responseText;});
          }
      }
    }
}

function toggleElements() {
    $('[@name=ShowHide]').each(function() {
        var watchedElement = '#' + this.value;
        if (this.checked === true) {
            $(watchedElement).show();
        } else {
            $(watchedElement).hide();
        }
    });
}

function persistCookies(formData) {
    var form = eval(formData);
    var cookieData = new Object();
    for (i = 0; i < form.length; i += 1) {
        if (form[i].name === 'name') {
            cookieData.name = form[i].value;
            continue;
        }
        if (form[i].name === 'company') {
            cookieData.company = form[i].value;
            continue;
        }
        if (form[i].name === 'address1') {
            cookieData.address1 = form[i].value;
            continue;
        }
        if (form[i].name === 'address2') {
            cookieData.address2 = form[i].value;
            continue;
        }
        if (form[i].name === 'city_state_zip') {
            cookieData.city_state_zip = form[i].value;
            continue;
        }
        if (form[i].name === 'phone') {
            cookieData.phone = form[i].value;
            continue;
        }
        if (form[i].name === 'email') {
            cookieData.email = form[i].value;
            continue;
        }
        if (form[i].name === 'type_business') {
            cookieData.type_business = form[i].value;
            continue;
        }
        if (form[i].name === 'job_function') {
            cookieData.job_function = form[i].value;
            continue;
        }
        if (form[i].name === 'heard_of_eu') {
            cookieData.heard_of_eu = form[i].value;
            continue;
        }
        if (form[i].name === 'subscribe_to_idea_box') {
            cookieData.subscribe_to_idea_box = form[i].value;
            continue;
        }
        if (form[i].name === 'login') {
            cookieData.login = form[i].value;
            continue;
        }
    }

    var cookieJar = $.cookieJar('formData', {
        cookie: {
            expires: 365
        }
    });
    
    if(cookieData.name !== undefined){
       cookieJar.setFromObject(cookieData);
    }

    setStatusMessage('');

    return true;
}

function reloadCookie() {
    var formData = $.cookieJar('formData').toObject();
    $('[@name=name]').each(function() {
        this.value = formData.name ? formData.name: '';
    });
    $('[@name=company]').each(function() {
        this.value = formData.company ? formData.company: '';
    });
    $('[@name=address1]').each(function() {
        this.value = formData.address1 ? formData.address1: '';
    });
    $('[@name=address2]').each(function() {
        this.value = formData.address2 ? formData.address2: '';
    });
    $('[@name=city_state_zip]').each(function() {
        this.value = formData.city_state_zip ? formData.city_state_zip: '';
    });
    $('[@name=phone]').each(function() {
        this.value = formData.phone ? formData.phone: '';
    });
    $('[@name=email]').each(function() {
        this.value = formData.email ? formData.email: '';
    });
    $('[@name=type_business]').each(function() {
        this.value = formData.type_business ? formData.type_business: '';
    });
    $('[@name=job_function]').each(function() {
        this.value = formData.job_function ? formData.job_function: '';
    });
    $('[@name=heard_of_eu]').each(function() {
        this.value = formData.heard_of_eu ? formData.heard_of_eu: '';
    });
    $('[@name=subscribe_to_idea_box]').each(function() {
        this.checked = formData.subscribe_to_idea_box ? true: false;
    });
    return true;
}

function setStatusMessage(message) {
    var statusAvailable = $('#statusArea').length > 0;
    if (statusAvailable) {
        $('#statusArea').each(function() {
            this.innerHTML = message;
        });
    }
}

function WireUpSearchButton(){
	$("input.searchText").keypress(function(e) {
		if (e.which == 13) {
			$("button.searchBtn").click();
		}
	});
}

function URLDecode(obj) {
    var lsRegExp = /\+/g;
    return unescape(String(obj).replace(lsRegExp, " "));
}


function DisplayQueryResults(data, placeholder, displayDescription) {
    if (data.query.count == 0) {
        //$('#relatedPosts').removeClass('related_header');
        return;
    }
    placeholder.empty();
    var results = data.query.results;
    var ul = $("<ul/>");
    if (data.query.count == 1) {
        var li = $("<li/>");
        var span = $("<span>").attr("class", "blogTitle").appendTo(li);
        $("<a>").attr("href", results.item.link).attr("target", "blank").append(results.item.title).appendTo(span);
        $("<br>").appendTo(li);
        if (displayDescription == true) li.append(results.item.description.substring(0, 80) + '...');
        li.appendTo(ul);
    }
    else {
        $.each(results.item, function () {
            var li = $("<li/>");
            var span = $("<span>").attr("class", "blogTitle").appendTo(li);
            $("<a>").attr("href", this.link).attr("target", "blank").append(this.title).appendTo(span);
            $("<br>").appendTo(li);
            if (displayDescription == true) li.append(this.description.substring(0, 80) + '...');
            li.appendTo(ul);
        });
    }
    ul.appendTo(placeholder);
}

jQuery.parseURI = function(uri) {
    var m = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/.exec(uri);
    var p = {};
    var q = m[7].split("&");

    p.params = {};
    while (q.length > 0) {
        var x = q.shift().split("=");
        p.params[x[0]] = URLDecode(x[1]);
    }

    return p;
};

eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(4($){5 m={\'\\b\':\'\\\\b\',\'\\t\':\'\\\\t\',\'\\n\':\'\\\\n\',\'\\f\':\'\\\\f\',\'\\r\':\'\\\\r\',\'"\':\'\\\\"\',\'\\\\\':\'\\\\\\\\\'},s={\'W\':4(x){5 a=[\'[\'],b,f,i,l=x.w,v;Q(i=0;i<l;i+=1){v=x[i];f=s[7 v];2(f){v=f(v);2(7 v==\'E\'){2(b){a[a.w]=\',\'}a[a.w]=v;b=K}}}a[a.w]=\']\';3 a.R(\'\')},\'1g\':4(x){3 X(x)},\'A\':4(x){3"A"},\'L\':4(x){3 1h(x)?X(x):\'A\'},\'Y\':4(x){2(x){2(x 1i 1j){3 s.W(x)}5 a=[\'{\'],b,f,i,v;Q(i 1k x){v=x[i];f=s[7 v];2(f){v=f(v);2(7 v==\'E\'){2(b){a[a.w]=\',\'}a.1l(s.E(i),\':\',v);b=K}}}a[a.w]=\'}\';3 a.R(\'\')}3\'A\'},\'E\':4(x){2(/["\\\\\\Z-\\10]/.11(x)){x=x.1m(/([\\Z-\\10\\\\"])/g,4(a,b){5 c=m[b];2(c){3 c}c=b.1n();3\'\\\\1o\'+1p.1q(c/16).M(16)+(c%16).M(16)})}3\'"\'+x+\'"\'}};$.B=4(v){5 f=1r(v)?s[7 v]:s[\'L\'];2(f)3 f(v)};$.F=4(v,a){2(a===C)a=$.F.12;2(a&&!/^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+1s-u \\n\\r\\t])+?$/.11(v))3 C;3 1t(\'(\'+v+\')\')};$.F.12=G})(N);N.p=4(a,b,c){2(7 b!=\'C\'){c=c||{};2(b===A){b=\'\';c.y=-1}5 d=\'\';2(c.y&&(7 c.y==\'L\'||c.y.13)){5 e;2(7 c.y==\'L\'){e=S 1u();e.1v(e.1w()+(c.y*1x*14*14*1y))}H{e=c.y}d=\'; y=\'+e.13()}5 f=c.O?\'; O=\'+(c.O):\'\';5 g=c.T?\'; T=\'+(c.T):\'\';5 h=c.15?\'; 15\':\'\';P.p=[a,\'=\',1z(b),d,f,g,h].R(\'\')}H{5 j=A;2(P.p&&P.p!=\'\'){5 k=P.p.1A(\';\');Q(5 i=0;i<k.w;i++){5 l=N.1B(k[i]);2(l.17(0,a.w+1)==(a+\'=\')){j=1C(l.17(a.w+1));1D}}}3 j}};(4($){$.1E=4(d,e){2(!$.F)3 G;2(!$.B)3 G;2(!$.p)3 G;3 S 4(){4 8(s){2(7 U!=\'C\'&&7 U.8!=\'C\'){U.8(\'1F:\'+c.I+\' \'+s)}H{1G(s)}};4 D(){2(c.6.q)8(\'D \'+$.B(c.o));3 $.p(c.I,$.B(c.o),c.6.p)};4 J(){5 a=$.p(c.I);2(7 a==\'E\'){2(c.6.q)8(\'J \'+a);c.o=$.F(a,K)}H{2(c.6.q)8(\'J S\');c.o={};D()}}z.18=4(a,b){2(c.6.q)8(\'18 \'+a+\' = \'+b);c.o[a]=b;3 D()};z.19=4(a){2(!c.6.1a){J()}2(c.6.q)8(\'19 \'+a+\' = \'+c.o[a]);3 c.o[a]};z.1b=4(a){2(c.6.q)8(\'1b \'+a);2(7 a!=\'C\'){1H(c.o[a])}H{c.V({})}3 D()};z.V=4(a){2(7 a==\'Y\'){2(c.6.q)8(\'V\');c.o=a;3 D()}};z.1c=4(){2(c.6.q)8(\'1c\');3 c.o};z.M=4(){2(c.6.q)8(\'M = \'+$.B(c.o));3 $.B(c.o)};z.1d=4(){2(c.6.q)8(\'1d\');c.o={};3 $.p(c.I,A,c.6.p)};z.1e=4(a,b){c.6=$.1I({p:{y:1J,O:\'/\'},1a:K,1f:\'1K\',q:G},b);c.I=c.6.1f+a;J();3 c};5 c=z;c.1e(d,e)}}})(N);',62,109,'||if|return|function|var|options|typeof|log||||||||||||||||cookieObject|cookie|debug||||||length||expires|this|null|toJSON|undefined|save|string|parseJSON|false|else|cookieName|load|true|number|toString|jQuery|path|document|for|join|new|domain|console|setFromObject|array|String|object|x00|x1f|test|safe|toUTCString|60|secure||substring|set|get|cacheCookie|remove|toObject|destroy|construct|cookiePrefix|boolean|isFinite|instanceof|Array|in|push|replace|charCodeAt|u00|Math|floor|isNaN|Eaeflnr|eval|Date|setTime|getTime|24|1000|encodeURIComponent|split|trim|decodeURIComponent|break|cookieJar|cookiejar|alert|delete|extend|365|jqCookieJar_'.split('|'),0,{}))
