        

if (typeof WEBO == "undefined") {
WEBO = {
	xhtmlNS:    		"http://www.w3.org/1999/xhtml",
	baseUrl:    		"http://research.air2web.com/",
	baseImageUrl:    	"http://research.air2web.com/scripts/",
	phoneDivID:			'a2w__phone_input_div',
	formID:     		'a2wSend2Phone',
	resultID:			'a2wSendResult',
	resAnimationID:		'a2wAnimation',
	inputDivID:			'a2winputsdiv',
	termsID:			'a2wtermsdiv',
	inputButtonsID:		'a2winputbuttons',
	inputButton1ID:		'a2winputbutton1',
	inputButton2ID:		'a2winputbutton2',
	inputTextID:		'a2winputtext',
	resultDivID:		'a2wresultsdiv',
    resultButton1ID:	'a2wresultsbutton1',
	resultButtonsID:	'a2wresultsbuttons',
	sentOnce:			false,
	loadScript:			null,
	myDiv:				false,
	stylesAdded:		false,
	secs: 				10,
	timerID: 			null,
	timerRunning: 		false,
	delay: 				1000,
	autoRegSelector:	'',
	autoKey:			'', // key used for autoregistration
	key:				'', // key used if none is passed in.
	lastAutoButton:		-1,
	eventAdded:			false,
	countryPrefix: {
	    'af' : '+27',
	    'ar' : { 'ae' : '+971',
	             'bh' : '+973',
	             'eg' : '+20',
	             'dz' : '+213',
	             'iq' : '+964',
	             'jo' : '+962',
	             'kw' : '+965',
	             'lb' : '+961',
	             'ly' : '+218',
	             'ma' : '+212',
	             'om' : '+968',
	             'qa' : '+974',
	             'sa' : '+966',
	             'sy' : '+963',
	             'tn' : '+216',
	             'ye' : '+967'
	          },                  
	    'be' : '+375',
	    'bg' : '+359',
	    'ca' : '+34',
	    'cs' : '+420',
	    'da' : '+45',
	    'de' : {
	            'at' : '+43',
	            'ch' : '+41',
	            'li' : '+423',
	            'lu' : '+352',
	            '*'  : '+49'
	           },
	    'el' :  '+30', 
	    'en' : {
	            'us' : '+1',
	            'au' : '+61',
	            'bz' : '+501',
	            'ca' : '+1',
	            'gb' : '+44',
	            'ie' : '+353',
	            'jm' : '+1',
	            'nz' : '+64',
	            'tt' : '+1',
	            'za' : '+27'
	           },
	    'es' : {
	            'ar' : '+54',
	            'bo' : '+591',
	            'cl' : '+56',
	            'co' : '+57',
	            'cr' : '+506',
	            'do' : '+1',
	            'ec' : '+593',
	            'gt' : '+502',
	            'hn' : '+504',
	            'mx' : '+52',
	            'ni' : '+505',
	            'pa' : '+507',
	            'pe' : '+51',
	            'pr' : '+1',
	            'py' : '+595',
	            'sv' : '+503',
	            'uy' : '+598',
	            've' : '+58',
	            '*'  : '+34'
	           },
	    'et' : '+372',
	    'eu' : '+34',
	    'fa' : '+98',
	    'fi' : '+358',
	    'fo' : '+298',
	    'fr' : {
	            'be' : '+32',
	            'ca' : '+1',
	            'ch' : '+41',
	            'ca' : '+352',
	            '*'  : '+33'
	           },
	    'gd' : {
	            'ie' : '+353',
	            '*'  : '+44'
	           },
	    'he' : '+972',
	    'hi' : '+91',
	    'hr' : '+385',
	    'hu' : '+36',
	    'in' : '+62',
	    'is' : '+354',
	    'it' : {
	            'ch' : '+41',
	            '*'  :  '+39'
	           },
	    'ja' : '+81',
	    'ji' : '+972',
	    'ko' : '+82',
	    'lt' : '+370',
	    'lv' : '+371',
	    'mk' : '+389',
	    'ms' : '+60',
	    'mt' : '+356',
	    'nl' : {
	            'be' : '+32',
	            '*'  :  '+31'
	           },
	    'pl' : '+48',
	    'pt' : {
	            'br' : '+55',
	            '*'  : '+351'
	           },
	    'rm' : '+40',
	    'ro' : '+40',
	    'ru' : '+7',
	    'sb' : '+49',
	    'sk' : '+421',
	    'sl' : '+386',
	    'sq' : '+355',
	    'sr' : '+381',
	    'sv' : {
	            'fi' : '+358',
	            '*'  : '+46'
	           },
	    'sx' : '+27',
	    'sz' : '+46',
	    'th' : '+66',
	    'tn' : '+267',
	    'tr' : '+90',
	    'ts' : '+268',
	    'uk' : '+380',
	    'ur' : '+92',
	    've' : '+27',
	    'vi' : '+84',
	    'xh' : '+27',
	    'zh' : {
	            'hk' : '+852',
	            'sg' : '+65',
	            'tw' : '+886',
	            '*'  : '+86'
	           },
	    'zu' : '+27'
	   },
	    
	$: function (element) {
	    
	    if (arguments.length > 1) {
	        for (var i = 0, elements = [], length = arguments.length; i < length; i++)
	            elements.push($(arguments[i]));
	        return elements;
	    }
	    
	    if (typeof element == 'string')
	    element = document.getElementById(element);
	
	    return element;
	},
	
	initializeTimer: function()
	{
	    // Set the length of the timer, in seconds
	    WEBO.secs = 3
	    WEBO.stopTheClock();
	    WEBO.startTheTimer();
	},
	
	stopTheClock: function()
	{
	    if(WEBO.timerRunning)
	        clearTimeout(WEBO.timerID)
	    WEBO.timerRunning = false
	},
	
	startTheTimer: function()
	{
	    if (WEBO.secs==0)
	    {
	        WEBO.stopTheClock();
	        // Here's where you put something useful that's
	        // supposed to happen after the allotted time.
	        // For example, you could display a message:
	        WEBO.$(WEBO.resAnimationID).style.display = 'none';
			WEBO.sendToPhoneForm(null,null,null,null,true);
	    }
	    else
	    {
	        self.status = WEBO.secs
	        WEBO.secs = WEBO.secs - 1
	        WEBO.timerRunning = true
	        WEBO.timerID = self.setTimeout("WEBO.startTheTimer()", WEBO.delay)
	    }
	},
	
	findCountryPrefix: function() {
	    // Worst case, we'll just go with +1
	    var lan = ((navigator.browserLanguage) ? 
	                navigator.browserLanguage : 
	                (navigator.language) ? navigator.language : navigator.userLanguage);
	    lan = ((lan) ? lan : "         ");
	    var t = lan.substr(0,2).toLowerCase();
	    var pfx = this.countryPrefix[t];
	    if (typeof pfx == "object") {
	        t = lan.substr(3,2).toLowerCase();
	        var t2 = pfx[t];
	        if (typeof t2 == "undefined") {
	            t2 = pfx['*'];
	        }
	        pfx = t2;
	    }    
	    if (typeof pfx == "undefined") {
	        pfx = "+";
	    }
	    return pfx;
	}, 
	
	createElement: function (type) {
	    if (document.createElementNS) {
	        return document.createElementNS(this.xhtmlNS, type);
	    } else if (document.createElement) {
	        return document.createElement(type);
	    }
	},
	
	trim: function(s) {
	    return s.replace(/^(\s*)(.*?)(\s*)$/, '$2')
	},
	
	parseSelector: function(select) {
	    var arr = select.match(/([^\.#]*)(\.|#)?([^\.#]*)/);
	    if (arr) {
	        return {'tag' : arr[1], 
	                'id' : (arr[2] == '#') ? arr[3] : null, 
	                'class' : (arr[2] == '.') ? arr[3] : null };                
	    }
	    else {
	        return {'tag' : select, 'id' : null, 'class' : null };
	    }
	},
	
	check: function (a, b, c) {
	    return (!a || a.toLowerCase() == b.toLowerCase() ||
	            (b && (t = a.length) != 0 && (a.charAt(t - 1) == '*' && b.indexOf(a.substr(0, t -1)) == 0)));
	},
	
	
	validateForm: function(form) {
		// Must accept terms and conditions
		if (form.termsCheck.checked != true) {
			return false;
		}
		
		// This checks for e-mail addresses
	    if (form.to.value.indexOf("@") > 0) {
	        return true;
	    }
	    
	    var num = form.to.value;
	    num = num.replace(/[^0-9\+]/g, "");
	    var wasIntl = false;
	    if (num.match(/^(\+|00|011|00[1-3][1-5])/)) {
	        num = num.replace(/^(\+|00|011|00[1-3][1-5])/, "");
	        wasIntl = true;
	    }
	    num = num.replace(/\+/g, "");
	    
	    if (!wasIntl) {
	        // We're assuming we got a domestic number.
	        if (num.length <= 10) {
	            num = this.findCountryPrefix() + num;
	        }
	        else {
	            // Maybe it already had the country code, it
	            // just didn't have the plus.
	            num = "+" + num;
	        }                    
	    }
	    else {
	        // Back to "canonical" international specification.
	        num = "+" + num;
	    }
	
	
	    if (num.length > 10) 
	    {
			// Replace new number; but don't put on plus sign
			var toShow = num;
			toShow = num.replace("+", "");
			form.to.value = toShow;
			return true;
	    } 
	    else 
	    {
	    	return false;
	    }
	},
	      
	getPlaceHolder: function() {
		var placeholder = document.getElementById("ab_placeholder");
		if (placeholder == null)
		{
			placeholder = document.createElement("div");
			placeholder.id = "ab_placeholder";
			document.getElementsByTagName("body")[0].appendChild(placeholder);
		}
		return placeholder;
	},
	
	addElement: function (e) {
		var placeholder = WEBO.getPlaceHolder();
		placeholder.appendChild(e);
	},
	        
	serializeForm: function(form) {
	    var res = "";
	    var join = "";
	    var device_address = "";
	    
	    var eles = form.elements;
	    for (var i = 0; i < eles.length; i++) {
	    	if (eles[i].name == "device_address") {
	            	device_address = eles[i].value;
					device_address = device_address.replace(/\+|[-() ]/g, "");
		            res += join + eles[i].name + "=" + device_address;
		            join = "&";
	        }
	        else if (eles[i].name && eles[i].value && eles[i].value.length) {
	            res += join + eles[i].name + "=" + eles[i].value;
	            join = "&";
	        }
	    }
	    return res;
	},
	
	sendRequest: function(form) {
	    var url = "http://cmpro.air2web.com/2notify/2NotifyResponse?" + WEBO.serializeForm(form);
	    var s = this.createElement("script");
	    s.setAttribute("type", "text/javascript");
	    s.setAttribute("src", url);
	    this.addElement(s);
		window.open(form.confirmation_page.value,'mywindow','width=400,height=200');	
	},
	        
	xxxxxxxxDumyxxxxxxx: 'used to prevent remembering to dump the last comma'
	    
};// define WEBO

} // typeof WEBO == "undefined"


