﻿
//-------------------------------------------------------------------
// Trim functions
//   Returns string with whitespace trimmed
//-------------------------------------------------------------------
function LTrim(str){
	if (str==null){return null;}
	for(var i=0;str.charAt(i)==" ";i++);
	return str.substring(i,str.length);
	}
function RTrim(str){
	if (str==null){return null;}
	for(var i=str.length-1;str.charAt(i)==" ";i--);
	return str.substring(0,i+1);
	}
function Trim(str){return LTrim(RTrim(str));}
function LTrimAll(str) {
	if (str==null){return str;}
	for (var i=0; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i++);
	return str.substring(i,str.length);
	}
function RTrimAll(str) {
	if (str==null){return str;}
	for (var i=str.length-1; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i--);
	return str.substring(0,i+1);
	}
function TrimAll(str) {
	return LTrimAll(RTrimAll(str));
	}

//-------------------------------------------------------------------
// isNull(value)
//   Returns true if value is null
//-------------------------------------------------------------------
function isNull(val){return(val==null);}

//-------------------------------------------------------------------
// isBlank(value)
//   Returns true if value only contains spaces
//-------------------------------------------------------------------
function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}


//-------------------------------------------------------------------
// isNumeric(value)
//   Returns true if value contains a positive float value
//-------------------------------------------------------------------
function isNumeric(val){	
	// return(parseFloat(val,10)==(val*1));	
	return /^[\-|\+]?[0-9]*[\.|\,]?[0-9]+$/.test(val);
	//return /^([0-9])+$/.test(val);	
}

//-------------------------------------------------------------------
// isArray(obj)
// Returns true if the object is an array, else false
//-------------------------------------------------------------------
function isArray(obj){return(typeof(obj.length)=="undefined")?false:true;}

//-------------------------------------------------------------------
// isDigit(value)
//   Returns true if value is a 1-character digit
//-------------------------------------------------------------------
function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}

//-------------------------------------------------------------------
// setNullIfBlank(input_object)
//   Sets a form field to "" if it isBlank()
//-------------------------------------------------------------------
function setNullIfBlank(obj){if(isBlank(obj.value)){obj.value="";}}

//-------------------------------------------------------------------
// setFieldsToUpperCase(input_object)
//   Sets value of form field toUpperCase() for all fields passed
//-------------------------------------------------------------------
function setFieldsToUpperCase(){
	for(var i=0;i<arguments.length;i++) {
		arguments[i].value = arguments[i].value.toUpperCase();
		}
	}

//-------------------------------------------------------------------
// disallowBlank(input_object[,message[,true]])
//   Checks a form field for a blank value. Optionally alerts if 
//   blank and focuses
//-------------------------------------------------------------------
function disallowBlank(obj){
	var msg=(arguments.length>1)?arguments[1]:"";
	var dofocus=(arguments.length>2)?arguments[2]:false;
	if (isBlank(getInputValue(obj))){
		if(!isBlank(msg)){alert(msg);}
		if(dofocus){
			if (isArray(obj) && (typeof(obj.type)=="undefined")) {obj=obj[0];}
			if(obj.type=="text"||obj.type=="textarea"||obj.type=="password") { obj.select(); }
			obj.focus();
			}
		return true;
		}
	return false;
	}

//-------------------------------------------------------------------
// disallowModify(input_object[,message[,true]])
//   Checks a form field for a value different than defaultValue. 
//   Optionally alerts and focuses
//-------------------------------------------------------------------
function disallowModify(obj){
	var msg=(arguments.length>1)?arguments[1]:"";
	var dofocus=(arguments.length>2)?arguments[2]:false;
	if (getInputValue(obj)!=getInputDefaultValue(obj)){
		if(!isBlank(msg)){alert(msg);}
		if(dofocus){
			if (isArray(obj) && (typeof(obj.type)=="undefined")) {obj=obj[0];}
			if(obj.type=="text"||obj.type=="textarea"||obj.type=="password") { obj.select(); }
			obj.focus();
			}
		setInputValue(obj,getInputDefaultValue(obj));
		return true;
		}
	return false;
	}

//-------------------------------------------------------------------
// commifyArray(array)
//   Take an array of values and turn it into a comma-separated string
//-------------------------------------------------------------------
function commifyArray(obj){
	var s="";
	if(obj==null||obj.length<=0){return s;}
	for(var i=0;i<obj.length;i++){
		s=s+((s=="")?"":",")+obj[i].toString();
		}
	return s;
	}

//-------------------------------------------------------------------
// getSingleInputValue(input_object,use_default)
//   Utility function used by others
//-------------------------------------------------------------------
function getSingleInputValue(obj,use_default) {
	switch(obj.type){
		case 'radio': case 'checkbox': return(((use_default)?obj.defaultChecked:obj.checked)?obj.value:null);
		case 'text': case 'hidden': case 'textarea': return(use_default)?obj.defaultValue:obj.value;
		case 'password': return((use_default)?null:obj.value);
		case 'select-one':
			if (obj.options==null) { return null; }
			if(use_default){
				var o=obj.options;
				for(var i=0;i<o.length;i++){if(o[i].defaultSelected){return o[i].value;}}
				return o[0].value;
				}
			if (obj.selectedIndex<0){return null;}
			return(obj.options.length>0)?obj.options[obj.selectedIndex].value:null;
		case 'select-multiple': 
			if (obj.options==null) { return null; }
			var values=new Array();
			for(var i=0;i<obj.options.length;i++) {
				if((use_default&&obj.options[i].defaultSelected)||(!use_default&&obj.options[i].selected)) {
					values[values.length]=obj.options[i].value;
					}
				}
			return (values.length==0)?null:commifyArray(values);
		}
	alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
	return null;
	}

//-------------------------------------------------------------------
// getSingleInputText(input_object,use_default)
//   Utility function used by others
//-------------------------------------------------------------------
function getSingleInputText(obj,use_default) {
	switch(obj.type){
		case 'radio': case 'checkbox': 	return "";
		case 'text': case 'hidden': case 'textarea': return(use_default)?obj.defaultValue:obj.value;
		case 'password': return((use_default)?null:obj.value);
		case 'select-one':
			if (obj.options==null) { return null; }
			if(use_default){
				var o=obj.options;
				for(var i=0;i<o.length;i++){if(o[i].defaultSelected){return o[i].text;}}
				return o[0].text;
				}
			if (obj.selectedIndex<0){return null;}
			return(obj.options.length>0)?obj.options[obj.selectedIndex].text:null;
		case 'select-multiple': 
			if (obj.options==null) { return null; }
			var values=new Array();
			for(var i=0;i<obj.options.length;i++) {
				if((use_default&&obj.options[i].defaultSelected)||(!use_default&&obj.options[i].selected)) {
					values[values.length]=obj.options[i].text;
					}
				}
			return (values.length==0)?null:commifyArray(values);
		}
	alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
	return null;
	}

//-------------------------------------------------------------------
// setSingleInputValue(input_object,value)
//   Utility function used by others
//-------------------------------------------------------------------
function setSingleInputValue(obj,value) {
	switch(obj.type){
		case 'radio': case 'checkbox': if(obj.value==value){obj.checked=true;return true;}else{obj.checked=false;return false;}
		case 'text': case 'hidden': case 'textarea': case 'password': obj.value=value;return true;
		case 'select-one': case 'select-multiple': 
			var o=obj.options;
			for(var i=0;i<o.length;i++){
				if(o[i].value==value){o[i].selected=true;}
				else{o[i].selected=false;}
				}
			return true;
		}
	alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
	return false;
	}

//-------------------------------------------------------------------
// getInputValue(input_object)
//   Get the value of any form input field
//   Multiple-select fields are returned as comma-separated values
//   (Doesn't support input types: button,file,reset,submit)
//-------------------------------------------------------------------
function getInputValue(obj) {
	var use_default=(arguments.length>1)?arguments[1]:false;
	if (isArray(obj) && (typeof(obj.type)=="undefined")) {
		var values=new Array();
		for(var i=0;i<obj.length;i++){
			var v=getSingleInputValue(obj[i],use_default);
			if(v!=null){values[values.length]=v;}
			}
		return commifyArray(values);
		}
	return getSingleInputValue(obj,use_default);
	}

//-------------------------------------------------------------------
// getInputText(input_object)
//   Get the displayed text of any form input field
//   Multiple-select fields are returned as comma-separated values
//   (Doesn't support input types: button,file,reset,submit)
//-------------------------------------------------------------------
function getInputText(obj) {
	var use_default=(arguments.length>1)?arguments[1]:false;
	if (isArray(obj) && (typeof(obj.type)=="undefined")) {
		var values=new Array();
		for(var i=0;i<obj.length;i++){
			var v=getSingleInputText(obj[i],use_default);
			if(v!=null){values[values.length]=v;}
			}
		return commifyArray(values);
		}
	return getSingleInputText(obj,use_default);
	}

//-------------------------------------------------------------------
// getInputDefaultValue(input_object)
//   Get the default value of any form input field when it was created
//   Multiple-select fields are returned as comma-separated values
//   (Doesn't support input types: button,file,password,reset,submit)
//-------------------------------------------------------------------
function getInputDefaultValue(obj){return getInputValue(obj,true);}

//-------------------------------------------------------------------
// isChanged(input_object)
//   Returns true if input object's value has changed since it was
//   created.
//-------------------------------------------------------------------
function isChanged(obj){return(getInputValue(obj)!=getInputDefaultValue(obj));}

//-------------------------------------------------------------------
// setInputValue(obj,value)
//   Set the value of any form field. In cases where no matching value
//   is available (select, radio, etc) then no option will be selected
//   (Doesn't support input types: button,file,password,reset,submit)
//-------------------------------------------------------------------
function setInputValue(obj,value) {
	var use_default=(arguments.length>1)?arguments[1]:false;
	if(isArray(obj)&&(typeof(obj.type)=="undefined")){
		for(var i=0;i<obj.length;i++){setSingleInputValue(obj[i],value);}
		}
	else{setSingleInputValue(obj,value);}
	}
	
//-------------------------------------------------------------------
// isFormModified(form_object,hidden_fields,ignore_fields)
//   Check to see if anything in a form has been changed. By default
//   it will check all visible form elements and ignore all hidden 
//   fields. 
//   You can pass a comma-separated list of field names to check in
//   addition to visible fields (for hiddens, etc).
//   You can also pass a comma-separated list of field names to be
//   ignored in the check.
//-------------------------------------------------------------------
function isFormModified(theform,hidden_fields,ignore_fields){
	if(hidden_fields==null){hidden_fields="";}
	if(ignore_fields==null){ignore_fields="";}
	var hiddenFields=new Object();
	var ignoreFields=new Object();
	var i,field;
	var hidden_fields_array=hidden_fields.split(',');
	for (i=0;i<hidden_fields_array.length;i++) {
		hiddenFields[Trim(hidden_fields_array[i])]=true;
		}
	var ignore_fields_array=ignore_fields.split(',');
	for (i=0;i<ignore_fields_array.length;i++) {
		ignoreFields[Trim(ignore_fields_array[i])]=true;
		}
	for (i=0;i<theform.elements.length;i++) {
		var changed=false;
		var name=theform.elements[i].name;
		if(!isBlank(name)){
			var type=theform[name].type;
			if(!ignoreFields[name]){
				if(type=="hidden"&&hiddenFields[name]){changed=isChanged(theform[name]);}
				else if(type=="hidden"){changed=false;}
				else {changed=isChanged(theform[name]);}
				}
			}
		if(changed){return true;}
		}
		return false;
	}
//-------------------------------------------------------------------
//  
//  İbrahim Evmek
//  // isREQUIRED(fName,oName,oType)
// isSUBMIT()
// isColor(value)
// isName(value) 
// isPhone(value) 
// isCreditCard(value) 
// isEmail(value) 
// isInteger(value) 
// getChecked(object) 
//-------------------------------------------------------------------

		
		var vMap = new Map();		
		
		function isREQUIRED(fName, oName,oType) {
			var 	b 	= false ;						
			var 	v  	= '' ;
			var 	s 	= 0 ;
			var 	l	= 0 ;
			var 	ml 	= 0 ;
			
			var o = getObject(oName+'',fName+'') ;			
			
			if (oType=='RADIO' || oType=='CHECKBOX') {								
				if(o.length+''=='undefined') {
					if (o.checked) {
						v  = o.value+'' ;
					};
				}else{
					v  = getChecked(o)+'' ;								
				};				
			} else {
				if (oType=='DROPDOWN' || oType=='LISTBOX') {						
					if (o.selectedIndex>-1) {						
						v = o.options[o.selectedIndex].value+'';	
					} else {
						v =''
					} ;
				} else {
					v  	= o.value+'' ;								
					s	= o.size;
					ml 	= o.maxLength ;			
				} ;					
			}	;						
			l 	= v.length ;					
			
			var po = getObject(oName + '_i');
			
			var sError = '' ;
			switch(oType){
				case 'PASSWORD': sError = '6 ile ' + ml +' Karakter Arasında Olmalıdır. Başında ve Sonunda Boşluk Olmamalıdır. Ör:(sifre%15)' ; break ;
				case 'HTML':
				case 'HTMLFCK':
				case 'TEXTAREA':
				case 'FILE':
				case 'TEXT': sError = 'Boş bırakılmamalıdır.' ; break ;
				case 'CHECKBOX':
				case 'RADIO':
				case 'LISTBOX':
				case 'DROPDOWN': sError = 'Bir Değer Seçilmelidir.' ; break ;
				case 'EMAIL': sError = 'xxx@xxx.xxx Olmalıdır. Ör:(isim@websitesi.com.tr)' ; break ;
				case 'DATE': sError = 'GUN/AY/YIL Olmalıdır. Ör:(01/02/2004)' ; break ;
				case 'DATETIMESECOND': sError = 'GUN/AY/YIL SAAT:DAKIKA:SANIYE Olmalıdır. Ör:(01/02/2004 22:56:05)' ; break ;				
				case 'DATETIME': sError = 'GUN/AY/YIL SAAT:DAKIKA Olmalıdır. Ör:(01/02/2004 22:56)' ; break ;
				case 'NAME': sError = 'Sadece Yazı Karakteri Olmalı. Ör:(Dr. Ali Veli)' ; break ;
				case 'MONTH': sError = '2 Basmaklı Rakam Olmalıdır. 12 den büyük olamaz. Ör:(02)' ; break ;				
				case 'INTEGER': sError = 'Tam Sayı Olmalıdır. Ör:(25615)' ; break ;
				case 'CREDITCARD' : sError = 'XXXXXXXXXXXXXXXX Formatında 16 basmaklı rakam olmalıdır. Ör:(1234123412341234)' ; break ;
				case 'NUMERIC' : sError = 'Sayı yada Küsüratlı Sayı Olmalıdır. Ör:(256.15)' ; break ;
				case 'PHONE': sError = ml+' basmaklı rakam olmalıdır.' ; break ;				
				case 'COLOR': sError = '#+Hex 6 Basamak Formatında Olmalıdır. Ör:(#0909AF)' ; break ;
			};
			
			if (v=='e-mail adresi' && oType=='EMAIL') {
				po.src = 'Images/vU.gif' ;							
				po.alt = 'Doldurulmalıdır.' ;									
				return false;
			};
			
			
			if (l!=0) {				
					switch(oType){
						case 'PASSWORD': b = (trim(v).length>=6 && trim(v).length<=ml) ; break ;							
						case 'HTML':
						case 'HTMLFCK':
						//case 'DROPDOWN': burası aşaıya alındı eğer terslik çıkarsa düzeltilecek 
						case 'LISTBOX':
						case 'TEXTAREA':						
						case 'CHECKBOX':
						case 'RADIO':
						case 'FILE':
						case 'TEXT': b = !(trim(v).length==0) ; break ;								
						case 'DROPDOWN': b = (v>0||v==-1) ; break ;				
						case 'EMAIL': b = isEmail(v); break ;							
						case 'DATE': b = isDate(v, 'dd/MM/yyyy')||isDate(v, 'dd.MM.yyyy'); break ;	
						case 'DATETIME': b = isDate(v, 'dd/MM/yyyy kk:mm')||isDate(v, 'dd.MM.yyyy kk:mm'); break ;	
						case 'DATETIMESECOND': b = isDate(v, 'dd/MM/yyyy kk:mm:ss')||isDate(v, 'dd.MM.yyyy kk:mm:ss'); break ;							
						case 'NAME': b = isName(v); break ;
						case 'MONTH': b = isDate(v, 'MM') ; break ; 																		
						case 'PHONE': b = (isInteger(v) &&v.length==ml) ;break ;						
						case 'INTEGER': b = isInteger(v) ;break ;						
						case 'NUMERIC' : b = isNumeric(v); break ;
						case 'CREDITCARD' : b = isCreditCard(v); break ;
						case 'COLOR': b = isColor(v) ; break ; 						
					};						
				if (b) {
					po.src = 'Images/vT.gif' ;			
					po.alt = 'Doğru Giriş Yapıldı.' ;
				} else {					
					po.src = 'Images/vH.gif' ;			
					po.alt = sError ;
				} ;													
			} else {
				po.src = 'Images/vU.gif' ;							
				po.alt = 'Doldurulmalıdır.' ;									
			};			
			return b;	
		}				
				
		
		function isSUBMIT(fName) {			
			var entries = vMap.getEntries();			
			var b = true ;
			var o = -1 ;
			var f = '' ;
			var fi  = '' ;
			for (var i = 0; i < entries.length; i++) {
				f  = entries[i].key.substring(0,entries[i].key.indexOf('.'));				
				fi = entries[i].key.substring(entries[i].key.indexOf('.')+1) ;				
				if (fName==f) {					
					b = b && isREQUIRED(f,fi,entries[i].value) ;				 
					o = (o==-1 && !b )?i:o;					
				};
			}
			if (o!=-1) {
				f  = entries[o].key.substring(0,entries[o].key.indexOf('.'));				
				fi = entries[o].key.substring(entries[o].key.indexOf('.')+1) ;
				//alert(f);	alert(fi); 	alert(getObject(fi,f).length);alert(entries[o].value);				
				if (entries[o].value =='RADIO' || entries[o].value =='CHECKBOX') {
					if (getObject(fi,f).length+''=='undefined') {												
						getObject(fi,f).focus() ;						
					}else{
						//getObject(fi+ '_i').focus() ;
						getObject(fi,f)[0].focus() ;
					};					
				}else{
					getObject(fi,f).focus() ;
				};								
			} ;
			return b ;								
		}


		

function getChecked(o){
	for (var i=0;i<o.length;i++) {
		if (o[i].checked) {
			return o[i].value ;
		}
	}
	return '';
}		
//-------------------------------------------------------------------
// isColor(value)
//   Returns true if value is Color
//-------------------------------------------------------------------function isColor(value) {
   if (isBlank(value)) return false ;
   //var match = /^(#)[0-9A-Fa-f]+$/.test(value);
   var match = /^(#)([0-9A-Fa-f]){6}$/.test(value);
   return match;
}
		
//-------------------------------------------------------------------
// isName(value)
//   Returns true if value is Name
//-------------------------------------------------------------------function isName(value) {
   if (isBlank(value)) return false ;
   var match = /^[.a-zA-Z İıÇçŞşÜüğĞÖö]+$/.test(value);
   return match;
}

//-------------------------------------------------------------------
// isPhone(value)
//   Returns true if value is Phone Number XXX XX XX
//-------------------------------------------------------------------function isPhone(value) {
   var match = /^(\d{3})(\ )(-)(\ )(\d{3})(\ )(\d{2})(\ )(\d{2})$/.test(value);
   return match;
}

//-------------------------------------------------------------------
// isCreditCard(value)
//   Returns true if value is Credit Card Number XXXX XXXX XXXX XXXX
//-------------------------------------------------------------------function isCreditCard(value) {
   //var match = /^(\d{4})(\ )(\d{4})(\ )(\d{4})(\ )(\d{4})$/.test(value);
   var match = /^(\d{16})$/.test(value);
   //return match;
   if (match) {	
		
		if	(!(	(value.charAt(0)== '4') ||
				(value.substring(0,2)=='51') ||
				(value.substring(0,2)=='52') ||
				(value.substring(0,2)=='53') ||
				(value.substring(0,2)=='54') ||
				(value.substring(0,2)=='55') )
			)	return false;
			
			var numberProduct;
			var numberProductDigitIndex;
			var checkSumTotal = 0;
			var cardNumberLength = 16 ;			
			for (var digitCounter = cardNumberLength - 1; digitCounter >= 0; digitCounter--) {
				checkSumTotal += parseInt(value.charAt(digitCounter));
				digitCounter--;
				numberProduct = String((value.charAt(digitCounter) * 2));
				for (var productDigitCounter = 0; productDigitCounter < numberProduct.length; productDigitCounter++)  {
					checkSumTotal += 
				    parseInt(numberProduct.charAt(productDigitCounter));
				}
			}
			//alert(checkSumTotal % 10) ;
			return (checkSumTotal % 10 == 0);
   } else {
		return false;
   } ;      
}

//-------------------------------------------------------------------
// isEmail(value)
//   Returns true if value is email adress
//-------------------------------------------------------------------
function isEmail(value) {
   var match = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$/.test(value);
   return match;
}
//-------------------------------------------------------------------
// isInteger(value)
//   Returns true if value contains all digits
//-------------------------------------------------------------------function isInteger(val){/*
	if (isBlank(val)){return false;}
	for(var i=0;i<val.length;i++){
		if(!isDigit(val.charAt(i))){return false;}
		}
	return true;
*/
/*	
	var match = /^[0-9]+$/.test(val);
	return match; */
	return /^[0-9]+$/.test(val);		}

	
//-------------------------------------------------------------------
// newTableToggle(idTD, idImg)
//-------------------------------------------------------------------
	function newTableToggle(idTD, idImg){
	var td = document.getElementById(idTD);
	var img = document.getElementById(idImg);
	if(td != null && img != null){
		var isHidden = td.style.display == "none" ? true : false;
		img.src = isHidden ? "images/icon_hide.gif" : "images/icon_show.gif";
		img.alt = isHidden ? 'Gizle' : 'Göster';
		td.style.display = isHidden ? "" : "none";
	}
}

//-------------------------------------------------------------------
// BrowserInfo
//-------------------------------------------------------------------
var is = new Browser();
function Browser() {
	var b=navigator.appName;
	
	this.b="";
	
	if (b.indexOf('Netscape')!=-1) this.b="ns";
	else if ((b=="Opera") || (navigator.userAgent.indexOf("Opera")>0)) this.b = "opera";
	else if (b=="Microsoft Internet Explorer") this.b="ie";
	
	b=navigator.userAgent.toLowerCase();
	
	if (b.indexOf("konqueror")>-1) this.b="konqueror";
	else if (b.indexOf("safari")>-1) this.b="safari";
	else if (b.indexOf("omniweb")>-1) this.b="omniweb";
	else if (b.indexOf("icab")>-1) this.b="icab";
	
	//if (!b) alert('Unidentified browser.\nThis browser is not supported,');
	
	this.version=navigator.appVersion;
	this.v=parseInt(this.version);
	this.ns=(this.b=="ns" && this.v>=4);
	this.ns4=(this.b=="ns" && this.v==4);
	this.ns6=(this.b=="ns" && this.v==5);
	this.ie=(this.b=="ie" && this.v>=4);
	this.ie4=(this.version.indexOf('MSIE 4')>0);
	this.ie5=(this.version.indexOf('MSIE 5')>0);
	this.ie55=(this.version.indexOf('MSIE 5.5')>0);
	this.ie6=(this.version.indexOf('MSIE 6.0')>0);
	this.opera=(this.b=="opera");
	this.dom=(document.createElement && document.appendChild && document.getElementsByTagName)?true:false;
	this.def=(this.ie||this.dom); // most used browsers, for faster if loops
	
	
	var ua=navigator.userAgent.toLowerCase();
	
	if (ua.indexOf("win")>-1) this.platform="win32";
	else if (ua.indexOf("mac")>-1) this.platform="mac";
	else if (ua.indexOf("apple")>-1) this.platform="apple";
	else if (ua.indexOf("webtv")>-1) this.platform="webtv";
	else if (ua.indexOf("x11")>-1) this.platform="unix";
	else if (ua.indexOf("linux")>-1) this.platform="linux";
	else this.platform="other";	
	
	if(this.ie) this.windowheight=document.body.offsetHeight;  else this.windowheight=window.innerHeight ;
	if(this.ie) this.windowwidth=document.body.offsetWidth; 	else	this.windowwidth=window.innerWidth;
	if(this.ie) this.scrollX=document.body.scrollLeft; else if(this.dom) this.scrollX=window.scrollX; else this.scrollX=window.pageXOffset;
	if(this.ie) this.scrollY=document.body.scrollTop; else if(this.dom) this.scrollY=window.scrollY; else this.scrollY=window.pageYOffset;	
	
}

function ArgumentURL() {
	this.getArgument = _getArg;
	this.setArgument = _setArg;
	this.removeArgument = _removeArg;
	this.toString    = _toString;	//Allows the object to be printed
									//no need to write toString()
	this.arguments   = new Array();

	// Initiation
	var separator = "&";
	var equalsign = "=";
	
	var str = window.location.search.replace(/%20/g, " ");
	var index = str.indexOf("?");
	var sInfo;
	var infoArray = new Array();

	var tmp;
	
	if (index != -1) {
		sInfo = str.substring(index+1,str.length);
		infoArray = sInfo.split(separator);
	}

	for (var i=0; i<infoArray.length; i++) {
		tmp = infoArray[i].split(equalsign);
		if (tmp[0] != "") {
			var t = tmp[0];
			this.arguments[tmp[0]] = new Object();
			this.arguments[tmp[0]].value = tmp[1];
			this.arguments[tmp[0]].name = tmp[0];
		}
	}
	

	
	function _toString() {
		var s = "";
		var once = true;
		for (i in this.arguments) {
			if (once) {
				s += "?";
				once = false;
			}
			s += this.arguments[i].name;
			s += equalsign;
			s += this.arguments[i].value;
			s += separator;
		}
		return s.replace(/ /g, "%20");
	}
	
	function _getArg(name) {
		if (typeof(this.arguments[name].name) != "string")
			return null;
		else
			return this.arguments[name].value;
	}
	
	function _setArg(name,value) {
		this.arguments[name] = new Object()
		this.arguments[name].name = name;
		this.arguments[name].value = value;
	}
	
	function _removeArg(name) {
		this.arguments[name] = null;
	}
	
	return this;
}

