//
//             Copyright (c) Smartlink Corp., 2002.
//                    All rights reserved.
//

//////////////////////////////////////////////////////////////////////////////
//
// Browser type
//

function Browser () {

   var userAgent = navigator.userAgent.toLowerCase ();
   this.major    = parseInt (navigator.appVersion);
   this.version  = parseFloat (navigator.appVersion);
   if (userAgent.indexOf ("msie") >= 0) {
      this.ie    = true;
      var verStr = userAgent.substr(userAgent.indexOf ("msie") + 5);
      this.ieVer = parseFloat(verStr.substr(0,verStr.indexOf(";")));
      
   }
   else if (userAgent.indexOf ("mozilla") >= 0) {
      this.ns    = true;
      this.ns4   = (this.version >= 4 && this.version < 5);
   }
   if (userAgent.indexOf ("opera") >= 0) {
      this.opera = true;
   }
   
   this.win      = (userAgent.indexOf ("win") >= 0);
   this.mac      = (userAgent.indexOf ("mac") >= 0);
   this.unix     = (userAgent.indexOf ("x11") >= 0);
   this.lineSep  = (this.mac ? '\r' : '\n');
}

var browser = new Browser ();


//////////////////////////////////////////////////////////////////////////////
//
// Elements
//

function getDocElementById (doc, id) {
   if (!doc)
      doc = document;
   if (browser.ns4) {
      var elem = doc [id];
      if (elem)
         return elem;
   
      var forms = doc.forms;
      for (var i = 0; i < forms.length; i++) {
         elem = forms [i] [id];
         if (elem)
            return elem;
      }
      return null;
   }
   return doc.getElementById (id);
}

function setInnerHTML (elem, html) {
   if (!elem)
      return;
   if (typeof (elem.innerHTML) == "string") {
      elem.innerHTML = html;
   }
   else if (browser.ns4) {
      var doc = elem.document;
      html = '<div class="' + elem.id + '">' + html + '</div>';
      doc.open (); doc.writeln (html); doc.close ();
   }
}

function setElementStyle (elem, name, value) {
   var style = elem.style;
   if (style) {
      switch (name) {
         case "color":       style.color = value;      break;
         case "font-weight": style.fontWeight = value; break;
      }
   }
}

/////////////////////////////////////////////////////////////////////////////
//
// Request
//
function sendRequest (id, url) {
   var request = getDocElementById (document, id);
   var tagName = (browser.ns4 ? "ilayer" : "iframe");
   
   if ("iframe" == tagName) {
     if(browser.opera ) {
         request.location.href = url;
     }
      
     else if(browser.ie ){
     // && browser.win &&  browser.ieVer >=  5.5){
          //  request.src = url;
                   
         document.frames[id].location.replace(url)
         
         //request.contentWindow.location.replace(url);
      }
     else {
          request.src = url;
     } 
    }
   if ("ilayer" == tagName) {
       request.load (url, 1);
     }
      
   return true;
}




//////////////////////////////////////////////////////////////////////////////
//
// Params
//

function parseParams(params, s) {
		var count = 0;
		var pos = 0; // first character ?
		var oldpos = 0;
		var chunk = "";
		var eqpos = 0;
		while (true) {
			oldpos = pos;
			pos = s.indexOf("&", oldpos+1); // next character &
			if (pos < 0) { 
				params[count] = new Object();
				chunk = s.substr(oldpos+1);
				eqpos = chunk.indexOf("=");
				params[count].str = chunk;
				params[count].name = chunk.substring(0, eqpos);
				params[count].value = chunk.substr(eqpos+1);
				count++;
				break;
			}	
			params[count] = new Object();
			chunk = s.substring(oldpos+1, pos);
			eqpos = chunk.indexOf("=");
			params[count].str = chunk;
			params[count].name = chunk.substring(0, eqpos);
			params[count].value = chunk.substr(eqpos+1);
			count++;
		}
	}	
	
		
		
		function getParamByName(params, arg) {
		var value = "undefined";
		for (var i=0; i < params.length; i++) {
			if (params[i].name == arg) {
				value = params[i].value
				break;
			}	
		}
		return value;
       }