if(VALIDATION_SCRIPT_LOADED == undefined){
    var baseURL = "http://" + window.location.hostname + "/../util/";
    
    /* Include External CSS Files */
    IncludeCSS(baseURL + "yui/ejgallo/css/jsvalidate.css");
    
	
	 /* Include External CSS Files */
    IncludeCSS(baseURL + "yui/assets/yui.css?v=2");
	
	
	 /* Include External CSS Files */
    IncludeCSS(baseURL + "yui/assets/dpSyntaxHighlighter.css");
	
	 /* Include External CSS Files */
    IncludeCSS(baseURL + "yui/build/container/assets/skins/sam/container.css");
	
	 /* Include External CSS Files */
    IncludeCSS(baseURL + "yui/build/button/assets/skins/sam/button.css");
	

	
    /* Include External JavaScript Files */
    
    //<!-- Dependency --> 
    IncludeJavaScript(baseURL + "yui/build/yahoo/yahoo.js"); 
     
    //<!-- Used for Custom Events and event listener bindings --> 
    IncludeJavaScript(baseURL + "yui/build/event/event.js");
    
    //<!-- Used for Custom Events and event listener bindings --> 
    IncludeJavaScript(baseURL + "yui/build/dom/dom.js");
    
	//<!-- Used for CSS Selectors --> 
    IncludeJavaScript(baseURL + "yui/build/selector/selector-beta.js");
	
    //<!-- Used for Drag/Drop Dialogs --> 
    IncludeJavaScript(baseURL + "yui/build/dragdrop/dragdrop-min.js");
    
    //<!--  ejgallo form validation class -->
    IncludeJavaScript(baseURL + "yui/ejgallo/jsvalidate.js");
    	 
    //<!-- Source file --> 
    IncludeJavaScript(baseURL + "yui/build/connection/connection.js");
    
    //<!-- Source file --> 
    IncludeJavaScript(baseURL + "yui/build/container/container-min.js");
	
	//<!-- Source file -->
	IncludeJavaScript(baseURL + "yui/build/yuiloader/yuiloader-beta-min.js");
	
	//<!-- Source file -->
	IncludeJavaScript(baseURL + "yui/build/animation/animation-min.js");

	//<!-- Source file -->
	IncludeJavaScript(baseURL + "yui/build/dragdrop/dragdrop-min.js");
	
	//<!-- Source file -->
	IncludeJavaScript(baseURL + "yui/build/element/element-beta-min.js");

	//<!-- Source file -->
	IncludeJavaScript(baseURL + "yui/build/button/button-min.js");

    //<!-- Used for Custom Events and event listener bindings --> 
    IncludeJavaScript(baseURL + "yui/ejgallo/modal.js");
	
	
}

var VALIDATION_SCRIPT_LOADED = true;

function IncludeJavaScript(jsFile)
{
	document.write('<script type="text/javascript" src="' + jsFile + '"></script>');
}

function IncludeCSS(cssFile)
{
	document.write('<link rel="stylesheet" type="text/css" href="' + cssFile + '">');
}


function showModalDialog(divId){
	var stopRedirect = false;
	var div = document.getElementById(divId);
	
	sendingPanel.hide();
	
	if(div != undefined && div != null){
		var content = div.innerHTML;
		var errorPanel = new YAHOO.widget.Panel("wait",  
												{ width: "240px", 
												  fixedcenter: true, 
												  close: false, 
												  draggable: false, 
												  zindex:1,
												  modal: true,
												  visible: true
												} 
											);
	    
	            errorPanel.setHeader("Information");
	            errorPanel.setBody(content);
	            errorPanel.render(document.body);
				
		stopRedirect = true;
	}
	return stopRedirect;
}


//background-image:url('"+baseURL+"yui/ejgallo/img/required.gif');background-repeat:no-repeat;background-position:center left;padding-left:10px;
//document.write("<STYLE>.required-failed{height:10px;margin-right:3px;margin-bottom:3px;font-size:10px;font-weight:bold;color:red;text-align:left;}</STYLE>");

	var handleFailure = function(o) {   
		// Hide the modal Panel
       	sendingPanel.hide();

		alert("communication with server failed");
		
		//YAHOO.log('Post failed', 'info', 'example');   
	     //var json = o.responseText.substring(o.responseText.indexOf('{'), o.responseText.lastIndexOf('}') + 1);   
	     //var data = eval('(' + json + ')');   
	     //status.innerHTML = 'Status: ' + data.Results.status + '<br>';   
	}   


	
	var handleSuccess = function(o){ 
	
	 var responseString;

	 if(o.responseXML !== undefined){
	 	var stopRedirect = false;
     	var root = o.responseXML.documentElement; 

     	try{
			var alreadyReg = root.getElementsByTagName('alreadyReg')[0].firstChild.nodeValue;
			if(alreadyReg == "true"){
				stopRedirect = (showModalDialog("alreadyReg") | stopRedirect);
			}
		}catch(e){}
		
		try{
			var alreadyRegToday = root.getElementsByTagName('alreadyRegToday')[0].firstChild.nodeValue;
			if(alreadyRegToday == "true"){
				stopRedirect = (showModalDialog("alreadyRegToday") | stopRedirect);
			}
		}catch(e){}
		
		try{
			var alreadyRegContest = root.getElementsByTagName('alreadyRegContest')[0].firstChild.nodeValue;
			if(alreadyRegContest == "true"){
				stopRedirect = (showModalDialog("alreadyRegContest") | stopRedirect);
			}
		}catch(e){}
		
		try{
			var alreadyRegContestToday = root.getElementsByTagName('alreadyRegContestToday')[0].nodeValue;
			if(alreadyRegContestToday == "true"){
				stopRedirect = (showModalDialog("alreadyRegContestToday") | stopRedirect);
			}
		}catch(e){}
     	
		try{
			var successUrl = root.getElementsByTagName('successURL')[0].firstChild.nodeValue;
			if(stopRedirect == false){
				window.location.href=successUrl;
			}
		}catch(e){}

/*     	
     	//check for an error first
	 	if(typeof(root.getElementsByTagName('errorBeans')[0]) !== undefined){
	 		//deal with error
			alert(o.responseText);
		 	
	 	}else{
	     	var successUrl = root.getElementsByTagName('successURL')[0].firstChild.nodeValue;
	     	window.location=successUrl;
     	}
*/     	
     }   
	    	    
    } 
	
	
	var callback = 
	{ 
	  success: handleSuccess, 
	  failure: handleFailure, 
	  argument: ['foo','bar'] 
	}; 
	 

	function registerConsumer(form, sUrl){


		//pass in the form id for the form we want to compile a post for
		var formObject = document.getElementById(form.id);   
		YAHOO.util.Connect.setForm(formObject);   

		// + "?rand=" + someRandomNumber
		try{

			//callback
			var cObj = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback);

		}catch(e){
			var alertPanel = new YAHOO.widget.Panel("alertPanel", { width:"320px", visible:false, draggable:false, close:true } );
    				alertPanel.setBody("<SPAN style='color:red'>"+ e.message +"</SPAN>");
    				alertPanel.render(document.body);				
    				alertPanel.show();
		}

		return false;
	}
	
	function unsubscribeConsumer(form, sUrl){
		//pass in the form id for the form we want to compile a post for
		var formObject
		var formObject = document.getElementById(form.id);   
		YAHOO.util.Connect.setForm(formObject);   

		// + "?rand=" + someRandomNumber
		try{

			//callback
			var cObj = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback);

		}catch(e){
			var alertPanel = new YAHOO.widget.Panel("alertPanel", { width:"320px", visible:false, draggable:false, close:true } );
    				alertPanel.setBody("<SPAN style='color:red'>"+ e.message +"</SPAN>");
    				alertPanel.render(document.body);				
    				alertPanel.show();
		}

		return false;
	}
	
	
	/*
		    responseString = "Transaction id: " + o.tId;   
         responseString += "HTTP status: " + o.status;   
         responseString += "Status code message: " + o.statusText;   
         responseString += "<li>HTTP headers: <ul>" + o.getAllResponseHeaders + "</ul></li>";   
         responseString += "PHP response: " + o.responseText;   
         responseString += "Argument object: " + o.argument;   
     	alert(responseString);
	
	*/

	
	function handleSubmit(form){
		if(all_valid){
				// Show the modal Panel
       			 sendingPanel.show();

    			var serviceURL = form.getAttribute("service");

    			if(serviceURL !== undefined && serviceURL != null && serviceURL != ""){

    				var serviceType = serviceURL.substring(serviceURL.lastIndexOf('/')+1).replace(".do","");
	
    				switch (serviceType)
    					{
    					case "registerConsumer":

    					  registerConsumer(form, serviceURL);
    					  break;
						case "unSubscribeConsumer":
						  unsubscribeConsumer(form, serviceURL);
						  break;
    					default:
    						var alertPanel = new YAHOO.widget.Panel("alertPanel", { width:"320px", visible:false, draggable:false, close:true } );
    						alertPanel.setBody("<SPAN style='color:red'>No Service Type Found</SPAN>");
    						alertPanel.render(document.body);				
    						alertPanel.show();
    					}		
    			}			
    			else{
    				var alertPanel = new YAHOO.widget.Panel("alertPanel", { width:"320px", visible:false, draggable:false, close:true } );
    				alertPanel.setBody("<SPAN style='color:red'>No Service Found</SPAN>");
    				alertPanel.render(document.body);				
    				alertPanel.show();
    			}
		}
		return false;
	}

	

    

