﻿/* JAVASCRIPT UTILITY METHODS
   Karol Golka
   May 12, 2007
   http://webstruments.com   
*******************************/

// GLOBALS
String.prototype.trim = 
function () {
    return this.replace(/^\s*|\s*$/,"");
}

/* Grab Form - Generic Form => XML method
--------------------------------------------------------------------------------- */
function GrabForm(myForm)
{
    // BEGIN BUILDING XML
    formXML = Builder.node('form');	
	
    // loop thru form inputs, switch, and build XML
    for(var i=0; i<myForm.length; i++) {
        
        // get element
	    ele = myForm[i];
	    
	    // debug
	    //alert(ele);
	    
	    // switch and build
	    switch(ele.tagName.toLowerCase()) {
		    case "hidden":
		        // build form element XML
        	    formXML.appendChild(Builder.node(ele.name, ele.value));
        	    break;
		    case "button":
			    break;
		    case "textarea":
			    // build form element XML
        	    formXML.appendChild(Builder.node(ele.name, ele.value));
			    break;
		    case "select":
		        // build form element XML
        	    formXML.appendChild(Builder.node(ele.name, $F(ele.name)));
			    break;	
		    case "input":
		        switch(ele.type) {
				    case "text":
				    case "hidden":
				    case "password":
				        // build form element XML
        	            formXML.appendChild(Builder.node(ele.name, $F(ele.name)));
			            break;	
				    case "checkbox":
				        // check if "checked"
				        if (ele.checked)
					        // build form element XML
        	                formXML.appendChild(Builder.node(ele.name, ele.value));
					    break;
				    case "radio":
				        // check if "checked"
				        if (ele.checked)
					        // build form element XML
        	                formXML.appendChild(Builder.node(ele.name, ele.value));
					    break;
				    default:
					    break;
			    } // end switch
				
			    break;
		    default:
			    break;
	    } // end switch
    } // end for loop
	
    // finish xml
    var xml = '<form>' + formXML.innerHTML + '</form>';
	
    // debug
    //$('debug').style.display = 'block';
    //$('debug').value = xml; // innerHTML works for FireFox but not IE
    // alert(xml);
    
    // ajax
    return xml;	    	

} // end GrabForm()



/* Get URL Parameter
--------------------------- */
function gup( name )
{
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var tmpURL = window.location.href;
  var results = regex.exec( tmpURL );
  if( results == null )
    return "";
  else
    return results[1];
}

/* URL decode / encode
--------------------------- */
function urldecode(text) {

    text= text.replace(/\%2f/g,"/");
    text= text.replace(/\%3f/g,"\\");
    text= text.replace(/\%3d/g,"=");
    text= text.replace(/\%26/g,"&");
    return text;
}
function urlencode(text) {

    text= text.replace(/\//g,"%2f");
    text= text.replace(/\?/g,"%3f");
    text=  text.replace(/=/g,"%3d");
    text=   text.replace(/&/g,"%26");
    return text;
}


