var CURR_FORM = null;

var Otext = function(formName, formOptions)
{
	// these are the default setting for the form filed value
	// @formOption is used to override these value when a new instance of Otext is created
	this.formFields = {
		EmailAddress					:	{ fieldType :	'text',				valueType : 'email',			name : 'email',							required : true,		include : true,	errorMessage : 'Please enter an Email Address' },
		CellPhoneNumber				:	{ fieldType :	'text',				valueType : 'cellPhone',	name : 'cellPhoneNumber',		required : true,		include :	true,	errorMessage : 'Please enter a Cell Phone Number' },
		CellPhoneCarrier			:	{ fieldType : 'select-one', valueType : 'carrier',		name : 'CellPhoneCarrier',	required : true,		include : true,	errorMessage : 'Please enter a Cell Phone Carrier' },
		FirstName							:	{ fieldType :	'text',				valueType : 'text',				name : 'firstName',					required : false,		include : false,	errorMessage : 'Please enter a First Name' },
		LastName							:	{ fieldType :	'text',				valueType : 'text',				name : 'lastName',					required : false,		include : false,	errorMessage : 'Please enter a Last Name' },
		Address1							:	{ fieldType :	'text',				valueType : 'text',				name : 'address',						required : false,		include : false,	errorMessage : 'Please enter an Address' },
		Address2							:	{ fieldType :	'text',				valueType : 'text',				name : 'address2',					required : false,		include : false,	errorMessage : '' },
		City									:	{ fieldType :	'text',				valueType : 'text',				name : 'city',							required : false,		include : false,	errorMessage : 'Please enter a City' },
		State									:	{ fieldType :	'text',				valueType : 'text',				name : 'state',							required : false,		include : false,	errorMessage : 'Please enter a State' },
		Zip										:	{ fieldType :	'text',				valueType : 'text',				name : 'zip',								required : false,		include : false,	errorMessage : 'Please enter a ZIP code' },
		Country								:	{ fieldType :	'text',				valueType : 'text',				name : 'country',						required : false,		include :	false,	errorMessage : 'Please enter a Country' },
		BirthDate1						:	{ fieldType :	'select-one',	valueType : '',						name : 'birthDate1',				required : false,		include :	false,	errorMessage : 'Please enter a Birth Day' },
		BirthDate2						:	{ fieldType :	'select-one',	valueType : '',						name : 'birthDate2',				required : false,		include :	false,	errorMessage : 'Please enter a Birth Month' },
		BirthDate3						:	{ fieldType :	'select-one',	valueType : '',						name : 'birthDate3',				required : false,		include :	false,	errorMessage : 'Please enter a Birth Year' },
		Custom1								:	{ fieldType :	'check-one',	valueType : '',						name : 'misc1',							required : false,		include : false,	errorMessage : '' },
		Custom2								:	{ fieldType :	'check-one',	valueType : '',						name : 'misc2',							required : false,		include : false,	errorMessage : '' },
		Custom3								:	{ fieldType :	'check-one',	valueType : '',						name : 'misc3',							required : false,		include : false,	errorMessage : '' },
		Custom4								:	{ fieldType :	'check-one',	valueType : '',						name : 'misc4',							required : false,		include : false,	errorMessage : '' },
		Custom5								:	{ fieldType :	'check-one',	valueType : '',						name : 'misc5',							required : false,		include : false,	errorMessage : '' }
	};

	this.__init__(formName, formOptions);
}


Otext.prototype = {

	__init__ : function(formName, formOptions)
	{		
		this.core = new Otext.form();
		this.formName = formName;
		
							
													
								
		
		// cycle through object properties
		// foreach: update formOptions passed by Otext object to override default values
		for(var prop in formOptions)
		{
			this.formFields[prop] = this.core.update(this.formFields[prop], formOptions[prop]);
		}
	},
	
	form : null,
	sFieldName : '', // used to add focus to an errorant field
	errStr : '',
	
	checkTextField : function(field)
	{
		var form = this.form;
		if(field.required)
		{
			if(form[field.name].value == '')
			{
				this.logRequired(field);
			}
		}
		return true;
	},
	
	checkEmail : function(field)
	{
		var form = this.form;
		var email = this.core.trim(form[field.name].value);
		
		if (email != '')
		{
			if(!this.core.emailCheck(email))
			{
				alert('Please enter a valid email');
				return false;
				//this.logError();
			}
		}
		else if(field.required)
		{
			this.logRequired(field);
		}
		
		return true;
	},
	
	checkPhoneNumber : function(field)
	{
		var form = this.form;
		var num1 = form[field.name + '1'];
		var num2 = form[field.name + '2'];
		var num3 = form[field.name + '3'];
	
		if(num1 && num2 && num3)
		{
			if(num1.value != '' || num2.value != '' || num3.value != '')
			{
				if(!this.core.phoneValidation(num1, num2, num3, 'Phone Number'))
				{
					return false;
				}
			}
			else if(field.required)
			{
				this.logRequired(field);
			}
			
			return true;
		}		
	},

	checkSelectOne : function(field)
	{
		var form = this.form;
		var selectOne = form[field.name];
		
		if(selectOne)
		{
			if(selectOne.options[selectOne.selectedIndex].value == '')
			{
				if(field.required)
				{
					this.logRequired(field);
					return false;
				}
			}
			
			return true;
		}
	},

	checkCheckOne : function(field)
	{
		var form = this.form;
		var fieldSelected = false;
		if(form[field.name])
		{
			for(var i=0; i < form[field.name].length; i++)
			{
				var checkOne = form[field.name][i];
				if(checkOne.checked)
				{
					fieldSelected = true;
					break;
				}
			}	
	
			if(fieldSelected)
			{
				return true;
			}
			else if(field.required)
			{
				this.logRequired(field);
				return false;
			}	
		}
	},


// check if field is a required field from required object
	isRequired : function(inOption)
	{
		return this.formFields[inOption].required;
	},


// Accepts an object hash of field names include, required values.
// Cycle through object and set appropriate values under this.formFields[fieldName].required
	setFields : function(inOptions)
	{
		for(var prop in inOptions)
		{
			this.formFields[prop].type = inOptions[prop].type;
			this.formFields[prop].required = inOptions[prop].required;
			this.formFields[prop].include = inOptions[prop].include;
	
			if(prop == 'CellPhoneNumber')
			{
				this.setRequired({CellPhoneCarrier:  true}); 
				this.doInclude({CellPhoneCarrier:  true});
			}
		}
	},


// Accepts an object hash of required fields
// Cycle through object and set appropriate values under this.formFields[fieldName].required
// ex. this.setRequired({CellPhoneCarrier:  true})
	setRequired : function(inOptions)
	{
		for(var prop in inOptions)
		{
			this.formFields[prop].required = inOptions[prop];
		}
	},



// Accepts an object hash of field names that should be included
// Cycle through object and set appropriate values under this.formFields[fieldName].include
// ex. this.doInclude({CellPhoneCarrier:  true});
	doInclude : function(inOptions)
	{
		for(var prop in inOptions)
		{
			this.formFields[prop].include = inOptions[prop];
		}
	},

	showError : function()
	{
		var errUl = document.createElement('ul');
		errUl.className = 'err_msg';
		errUl.innerHTML = this.errStr;
		this.errDiv.appendChild(errUl);	
		this.errDiv.style.display = 'block';
		
		var errField = this.form[this.sFieldName];
		if(errField.type == 'text' || errField.type == 'select-one')
		{
			errField.focus();
		}	
		
		// reset error field
		this.sFieldName = '';
	},

logRequired : function(field)
	{
		this.errStr += '<li>' + field.errorMessage + '</li>';
		if(this.sFieldName == '')
		{
			var p = /Phone/;
			if(p.test(field.name) && field.valueType != 'carrier')
			{
				this.sFieldName = field.name + '1';
			}
			else
			{
				this.sFieldName = field.name;
			}
		}
	},

	submitForm : function()
	{
		this.form = document[this.formName];
		CURR_FORM = this.form;
		
		if(this.errDiv)
		{	
			// reset and initially hide error div
			while(this.errDiv && this.errDiv.childNodes.length > 0)
			{
				this.errDiv.removeChild(this.errDiv.childNodes[0]);
			}
			this.errDiv.style.display = 'none';
		}
		else
		{
			this.errDiv = document.createElement('div');
			this.errDiv.className = 'msgtd';
			this.errDiv.style.display = 'none';
			this.errDiv.setAttribute('id', this.formName + '_errDiv');
			this.form.insertBefore(this.errDiv, this.form.childNodes[0]);
		}

		//cleanup error message
		this.errStr = '';
		var fields = [];

	
		for(var fieldName in this.formFields)
		{
			if(this.formFields[fieldName].include)
			{
				//fields[fieldName] = this.formFields[fieldName];
				var currField = this.formFields[fieldName];
				var fieldType = currField.fieldType;
				var valueType = currField.valueType;
	
				switch(fieldType)
				{
					case 'text':	
						if(valueType != 'email' && valueType != 'cellPhone')
						{
							this.checkTextField(currField);
						}				
						else if(valueType == 'email')
						{
							if(!this.checkEmail(currField))
								return false;
						}
						else if(valueType == 'cellPhone')
						{
							if(!this.checkPhoneNumber(currField))
								return false;
						}
						break;
					
					case 'select-one':
						this.checkSelectOne(currField);
						break;
						
					case 'check-one':
						this.checkCheckOne(currField);
						break;
				}
			}
		}
		
		if (this.errStr != "")
		{
			this.showError();		
			return false;
		}	
		else
		{
			/*** 	Omniture tracking pixel for otext form
						event=event19 
			***/
			
			var omniImg = document.createElement('img');
			omniImg.src = window.location.protocol + '//overstock.112.2o7.net/b/ss/overstock.com/1/H.7-pdv-2/s32421478925548?events=event19' ;
			omniImg.setAttribute('width','0');
			omniImg.setAttribute('height','0');
			omniImg.style.display = 'none';
			document.getElementsByTagName('body')[0].appendChild(omniImg);
			/*** 	Omniture tracking pixel for otext form ***/
			
			this.showProcessing();
			return true;
		}
	},

	showProcessing : function()
	{
		var oBody = document.getElementsByTagName('body')[0];
		var prcssDiv = document.getElementById('dyn_div');
		
		jscript.dom.createDropsheet('errIframe');
		oBody.appendChild(prcssDiv);
		
		
		prcssDiv.style.visibility = 'hidden';
		prcssDiv.style.display = 'block';
		//oBody.style.overflow = 'hidden';
		jscript.dom.layerCenter(prcssDiv);
		prcssDiv.style.visibility = 'visible';
		window.onunload = function() { document.body.removeChild(prcssDiv); };
	}
}



Otext.form = function() {};
Otext.form.prototype = {

	update : function(self, source)
	{
		if(self === null || typeof self == 'undefined')
		{
			self = {};
		}
		for(var i=1; i < arguments.length; i++)
		{
			var o = arguments[i];
			
			if(typeof o != 'undefined')
			{
				for(var propName in o)
				{
					self[propName] = o[propName];
				}
			}
		}
		return self;
	},
	
	emailCheck : function(emailStr)
	{
		var emailPat=/^(.+)@(.+)$/
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
		var validChars="\[^\\s" + specialChars + "\]"
		var quotedUser="(\"[^\"]*\")"
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
		var atom=validChars + '+'
		var word="(" + atom + "|" + quotedUser + ")"
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	
		var matchArray=emailStr.match(emailPat)
		if (matchArray==null) {
			return false
		}
		var user=matchArray[1]
		var domain=matchArray[2]
		if (user.match(userPat)==null) {
				return false
		}
		var IPArray=domain.match(ipDomainPat)
		if (IPArray!=null) {
				for (var i=1;i<=4;i++) {
					if (IPArray[i]>255) {
					return false
					}
				}
				return true
		}
		var domainArray=domain.match(domainPat)
		if (domainArray==null) {
			return false
		}
		var atomPat=new RegExp(atom,"g")
		var domArr=domain.match(atomPat)
		var len=domArr.length
		if (domArr[domArr.length-1].length<2 ||
				domArr[domArr.length-1].length>4) {
			return false
		}
		if (len<2) {
			 return false
		}
		return true;
	},
	
	
	phoneValidation : function(area,firstdigits,lastdigits,fromPhone)
	{
		if (area.value == null || area.value.length == 0)
		{
			alert("Please fill in your "+ fromPhone +" area code.");
			area.focus()
			return false;
		}
		else
		{
			if (area.value.length	< 3)
			{
				alert("Your  "+ fromPhone +" area code must be 3 digits.");
				area.focus();
				return false;
			}
			var PhoneArea = area.value;
			var FirstPhone = PhoneArea.substring(0, 1);
			if ((FirstPhone == 0) || (FirstPhone == 1))
			{
				alert("International area codes beginning with " + FirstPhone + " are not allowed.");
				area.focus();
				return false;
			}
			if (this.isInteger(area.value) == false){
				alert("No letters allowed in your "+ fromPhone +".");
				area.focus();
				return false;		
			}
		}
		if (firstdigits.value == null || firstdigits.value.length == 0)
		{
			alert("Please fill in your "+ fromPhone +" prefix.");
			firstdigits.focus()
			return false;
		}
		else
		{
			if (firstdigits.value.length	< 3)
			{
				alert("Your "+ fromPhone +" prefix must be 3 digits.");
				firstdigits.focus();
				return false;
			}
			
			if (this.isInteger(firstdigits.value) == false){
				alert("No letters allowed in your "+ fromPhone +".");
				firstdigits.focus();
				return false;		
			}
	
		}
	
		if (lastdigits.value == null || lastdigits.value.length == 0)
		{
			alert("Please fill in your "+ fromPhone +" suffix.");
			lastdigits.focus()
			return false;
		}
	
		else
		{
			if (lastdigits.value.length	< 4)
			{
				alert("Your "+ fromPhone +" suffix must be 4 digits.");
				lastdigits.focus();
				return false;
			}
			
			if (this.isInteger(lastdigits.value) == false){
				alert("No letters allowed in your "+ fromPhone +".");
				lastdigits.focus();
				return false;		
			}
		}
	
		if (area.value == 111 || area.value == 222 || area.value == 333 || area.value == 444 || area.value == 555 || area.value == 666 || area.value == 777 || area.value == 888 || area.value == 999)
		{
			alert("Your "+ fromPhone +" area code is not valid.");
			area.focus()
			return false;
		}
		if (firstdigits.value == 000 && lastdigits.value == 0000 || firstdigits.value == 111 && lastdigits.value == 1111 || firstdigits.value == 222 && lastdigits.value == 2222 || firstdigits.value == 333 && lastdigits.value == 3333 || firstdigits.value == 444 && lastdigits.value == 4444 || firstdigits.value == 555 && lastdigits.value == 5555 || firstdigits.value == 666 && lastdigits.value == 6666 || firstdigits.value == 777 && lastdigits.value == 7777 || firstdigits.value == 888 && lastdigits.value == 8888 || firstdigits.value == 999 && lastdigits.value == 9999)
		{
			alert("Your "+ fromPhone +" number is not valid.");
			firstdigits.focus()
			return false;
		}
		if (lastdigits.value == 0000)
		{
			alert("Your "+ fromPhone +" suffix is not valid.");
			lastdigits.focus()
			return false;
		}
		return true;
	},
	
	
	
	ltrim : function(s)
	{
		return s.replace(/^\s*/,"")
	},
	
	rtrim : function(s)
	{
		return s.replace(/\s*$/,"");
	},
	
	trim : function(s)
	{
		return this.rtrim(this.ltrim(s));
	},
	
	isDigit : function(c)
	{   
		return ((c >= "0") && (c <= "9"))
	},
	isEmpty : function(s)
	{   
		s=this.trim(s);
		return ((s == null) || (s.length == 0))
	},
	
	warnEmpty : function(theField, s)
	{   
		theField.focus();
		alert("Please enter " +s);
		return false;
	},
	
	checkEmpty : function(theField, s)
	{
		 if(this.isEmpty(theField.value)) return this.warnEmpty(theField, s);
		 else return true;
	},
	
	isWhitespace : function(s)
	{
		var i;
		var whitespace = " \t\n\r";
			if (this.isEmpty(s)) return true;
			for (i = 0; i < s.length; i++)
			{   
				var c = s.charAt(i);
				if (whitespace.indexOf(c) == -1) return false;
			}
	
			return true;
	},
	
	isInteger : function(s)
	{
		var i;
		if (this.isEmpty(s))
		{
			if (this.isInteger.arguments.length == 1) return defaultEmptyOK;
			else return (this.isInteger.arguments[1] == true);
		}
		for (i = 0; i < s.length; i++)
		{   
			var c = s.charAt(i);
			if (!this.isDigit(c)) return false;
		}
	
		return true;
	}

	
}







// WINDOW FUNCTIONS
function openSendWindow (num1, num2, num3, carrier)
{
		if(CURR_FORM.formID)
		formID=CURR_FORM.formID.value;
	if(CURR_FORM.cellPhoneNumber1 && CURR_FORM.cellPhoneNumber2 && CURR_FORM.cellPhoneNumber3)
	{
		if(!phoneValidation(CURR_FORM.cellPhoneNumber1,CURR_FORM.cellPhoneNumber2,CURR_FORM.cellPhoneNumber3,'Cell Phone Number'))
		return false;
		
		if(CURR_FORM.CellPhoneCarrier)
		{
			var cellCarrier=CURR_FORM.CellPhoneCarrier.options[CURR_FORM.CellPhoneCarrier.selectedIndex].value
			if (cellCarrier != "")
			{
				var url = "http://app.mobilestorm.com/stun/manageforms/sendTestSMSMessage.php?phone="+num1+""+num2+""+num3+"&carrier="+cellCarrier+"&formID="+formID;
				var url1 = "http://app.mobilestorm.com/stun/manageforms/sendTestSMSMessage1.php?phone="+num1+""+num2+""+num3+"&carrier="+cellCarrier+"&formID="+formID;
				//document.frames["I1"].location.replace(url);
				document.getElementById("myDiv").innerHTML="<img width=1 height=1 border=0 src='"+url+"'>";
				MM_openBrWindow(url1,"sendWin","scrollbars=no,resize=no,width=400,height=200");
			}
			else	{
				alert("Please select carrier for Cell Phone.");
				//return false;
			}
		}
	}
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

jscript = function() { }
jscript.tabForward = function(inTextBox)
{
	var currForm = inTextBox.form;
	if(currForm.elements[currForm.elements.length - 1] != inTextBox &&
		inTextBox.value.length == inTextBox.getAttribute('maxlength'))
	{
		for(var i=0; i < currForm.elements.length; i++)
		{
			if(currForm.elements[i] == inTextBox)
			{
				for(var j=i+1; j < currForm.elements.length; j++)
				{
					if(currForm.elements[j].type != 'hidden')
					{
						currForm.elements[j].focus();
						return;
					}
				}
				
				return true;
			}
		}
	}
}
jscript.toggleCheckBoxes = function(e)
{
	var doSelect = false;
	var target = (typeof window.event != 'undefined') ? window.event.srcElement : e.target;
	var targetName = target.getAttribute('name');
	doSelect = target.checked;
	
	while(target.parentNode && target.nodeName.toLowerCase() != 'form')
	{
		target = target.parentNode;
	}
	var inputs = target.getElementsByTagName('input');
	for(var i=0; i < inputs.length; i++)
	{
		if(inputs[i].type == 'checkbox' && inputs[i].name == targetName)
		{
			inputs[i].checked = doSelect;		
		}
	}
}





jscript.dom = function() { }
jscript.dom.getDocumentElement = function()
{
	var docElm = null;
	
	if(typeof window.pageXOffset != 'undefined')
	{
				// if standards compliant: FF2+, Safari 3+, Opera 9
				// if .pageXOffset is present assume non-ie browser
		docElm = window;
	}
	else
	{
				// if true: IE6 standards compliant - stric
				// else: IE6 quirks mode
		docElm = (document.compatMode && document.compatMode != 'BackCompat')
							? document.documentElement
							: document.body;
	}
	
	return docElm;
}

jscript.dom.layerCenter = function(inObj)
{
	var viewport = jscript.dom.getViewportSize();
	var scrollPos = jscript.dom.getScrollPosition();
	var objPos = [{x:0,y:0}];
	var objDim = [{x:null,y:null}];
	objDim.x = inObj.offsetWidth;
	objDim.y = inObj.offsetHeight;
	
	objPos.x = (Math.round(viewport.x/2)) - (Math.round(objDim.x/2));
	objPos.y = (Math.round(viewport.y/2)) - (Math.round(objDim.y/2));
	
	inObj.style.position = 'absolute';
	inObj.style.left = objPos.x + scrollPos.x + 'px';
	inObj.style.top = objPos.y + scrollPos.y + 'px';	
}

jscript.dom.createDropsheet = function(inId)
{
	this.dropSheetId = inId || 'dropsheet';
	var body = document.getElementsByTagName('body')[0];
	
	var pageDim = jscript.dom.getPageDimensions();
	var viewport = jscript.dom.getViewportSize();

	if(viewport.y > pageDim.y)
	{
		pageDim.y = viewport.y;
	}
	var dropframe = document.createElement('iframe');
	var dropsheet = document.createElement('div');
	dropsheet.setAttribute('id',this.dropSheetId);
	dropsheet.style.position = 'absolute';
	dropsheet.style.left = '0px';
	dropsheet.style.top = '0px';
	dropsheet.style.width = pageDim.x + 'px';
	dropsheet.style.height = pageDim.y + 'px';
	
	dropframe.setAttribute('id',this.dropSheetId + '_frame');
	dropframe.style.position = 'absolute';
	dropframe.style.left = '0px';
	dropframe.style.top = '0px';
	dropframe.style.width = pageDim.x + 'px';
	dropframe.style.height = pageDim.y + 'px';
	
	body.appendChild(dropframe);
	body.appendChild(dropsheet);
}

jscript.dom.getPageDimensions = function()
{
	/*
		This method consolidates the properties supported by various browsers
	*/
	var body = document.getElementsByTagName('body')[0];
	this.bodyOffsetWidth = 0;
	this.bodyOffsetHeight = 0;
	this.bodyScrollWidth = 0;
	this.bodyScrollHeight = 0;
	this.pageDimension = [{x:0,y:0}];

	
	if(typeof document.documentElement != 'undefined' &&
		 typeof document.documentElement.scrollWidth != 'undefined')
	{
		this.pageDimension.x = document.documentElement.scrollWidth;
		this.pageDimension.y = document.documentElement.scrollHeight;
	}
	
	this.bodyOffsetWidth = body.offsetWidth;
	this.bodyOffsetHeight = body.offsetHeight;
	this.bodyScrollWidth = body.scrollWidth;
	this.bodyScrollHeight = body.scrollHeight;
	
	if(this.bodyOffsetWidth > this.pageDimension.x)
	{
		this.pageDimension.x = this.bodyOffsetWidth;
	}
	if(this.bodyOffsetHeight > this.pageDimension.y)
	{
		this.pageDimension.y = this.bodyOffsetHeight;
	}
	if(this.bodyScrollWidth > this.pageDimension.x)
	{
		this.pageDimension.x = this.bodyScrollWidth;
	}
	if(this.bodyScrollHeight > this.pageDimension.y)
	{
		this.pageDimension.y = this.bodyScrollHeight;
	}
	
	return this.pageDimension;
}

jscript.dom.getScrollPosition = function()
{
	this.scrollPos = [{x:0,y:0}];
	if(typeof window.pageXOffset != 'undefined')
	{		
		/*** W3 standard methods FF 2.0 +, Safari 3.0, Opera 9.0**/
		this.scrollPos.x = window.pageXOffset;
		this.scrollPos.y = window.pageYOffset;
		return this.scrollPos;
	}
	else if(typeof document.body.parentElement.scrollTop != 'undefined' && document.compatMode != ('BackCompat'))
	{
		/*** IE7 with Strict Doctype/Standards Compliant ***/
		this.scrollPos.x = document.body.parentElement.scrollLeft;
		this.scrollPos.y = document.body.parentElement.scrollTop;
		return this.scrollPos;
	}	
	else if(typeof document.documentElement.scrollTop != 'undefined' &&
					document.documentElement.scrollTop > 0)
	{
		/*** IE6 with Strict Doctype/Standards Compliant ***/
		this.scrollPos.x = document.documentElement.scrollLeft;
		this.scrollPos.y = document.documentElement.scrollTop;
		return this.scrollPos;
	}	
	else if(typeof document.body.scrollTop != 'undefined')
	{
		/*** IE5 & IE6 Quirks mode ***/
		this.scrollPos.x = document.body.scrollLeft;
		this.scrollPos.y = document.body.scrollTop;
		return this.scrollPos;
	}		
	return this.scrollPos;
}


jscript.dom.getViewportSize = function() 
{
	this.size = [{x:0,y:0}];
	
	if(typeof window.innerWidth != 'undefined')
	{	
		this.size.x = window.innerWidth;
		this.size.y = window.innerHeight;
	}
	else if(typeof document.documentElement != 'undefined' && 
					typeof document.documentElement.clientWidth != 'undefined' && 
					document.documentElement.clientWidth != 0) 
	{
		this.size.x = document.documentElement.clientWidth;
		this.size.y = document.documentElement.clientHeight;
	}
	else
	{
		this.size.x = document.getElementsByTagName('body')[0].clientWidth;
		this.size.y = document.getElementsByTagName('body')[0].clientHeight;
	}

	return this.size;
}



