/*
  Developed by Robert Nyman, http://www.robertnyman.com
  Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/	
var getElementsByClassName = function (className, tag, elm)
{
	 if (document.getElementsByClassName) 
	 {        
		  getElementsByClassName = function (className, tag, elm) 
		  {
			   elm = elm || document;
			   var elements = elm.getElementsByClassName(className),
			   nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
			   returnElements = [],
			   current;
			   for(var i=0, il=elements.length; i<il; i+=1)
			   {
					current = elements[i];
					if(!nodeName || nodeName.test(current.nodeName)) 
					{
						 returnElements.push(current);
					}
			   }
			   return returnElements;
		  };
	 }
	 else if (document.evaluate) 
	 {
		  getElementsByClassName = function (className, tag, elm) 
		  {
			   tag = tag || "*";
			   elm = elm || document;
			   var classes = className.split(" "),
			   classesToCheck = "",
			   xhtmlNamespace = "http://www.w3.org/1999/xhtml",
			   namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
			   returnElements = [],
			   elements,
			   node;
			   for(var j=0, jl=classes.length; j<jl; j+=1)
			   {
					classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			   }
			   try	
			   {
					elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			   }
			   catch (e) 
			   {
					elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			   }
			   while ((node = elements.iterateNext())) 
			   {
					returnElements.push(node);
			   }
			   return returnElements;
		  };
	 }
	 else 
	 {
		  getElementsByClassName = function (className, tag, elm) 
		  {
			   tag = tag || "*";
			   elm = elm || document;
			   var classes = className.split(" "),
			   classesToCheck = [],
			   elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
			   current,
			   returnElements = [],
			   match;
			   for(var k=0, kl=classes.length; k<kl; k+=1)
			   {
					classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			   }
			   for(var l=0, ll=elements.length; l<ll; l+=1)
			   {
					current = elements[l];
					match = false;
					for(var m=0, ml=classesToCheck.length; m<ml; m+=1)
					{
						 match = classesToCheck[m].test(current.className);
						 if (!match) 
						 {
							  break;
						 }
					}
					if (match) 
					{
						 returnElements.push(current);
					}
			   }
			   return returnElements;
		  };
	 }
	 return getElementsByClassName(className, tag, elm);
};

function btns_submitHandler()
{
	 var form = this.form;
	 var ok = true;
	 if(form && typeof(form.onsubmit) == 'function')
	 { 
		  ok = form.onsubmit(); 
	 }
	 else if (!form)
	 {
	 	  ok = false;
	 }
	 if(ok)
	 {
		  if(this.name) 
		  {
			   var field = document.createElement("input");
			   field.setAttribute("type","hidden");
			   field.setAttribute("name", this.name);
			   form.appendChild(field);
		  }
		  form.submit();
		  return true;
	 }
	 return false;
};

function btns_resetHandler()
{
	 var form = this.form;
	 form.reset();
};

var btn = {
	 init: function() 
	 {
		  if (!document.createElement || 
			  !document.appendChild )
		  {
			   return false;
		  }

		  as = getElementsByClassName('btn');
		  for (i=0; i<as.length; i++) 
		  {
			   if ( as[i].tagName.toLowerCase() == "input" && 
					( as[i].type.toLowerCase() == "submit" || 
					  as[i].type.toLowerCase() == "button" ||
					  as[i].type.toLowerCase() == "reset" ) ) 
			   {
					var a1 = document.createElement("a");
					if(as[i].value)
					{
						 a1.appendChild(document.createTextNode(as[i].value));
					}
					else
					{
						 a1.appendChild(document.createTextNode('Submit'));
					}
					a1.className = as[i].className;
					a1.id = as[i].id;
					if(as[i].onclick) 
					{
						 a1.onclick = as[i].onclick;
					} 
					if(as[i].name) 
					{ 
						 a1.name = as[i].name;
					}
					if(as[i].form)
					{
						 a1.form = as[i].form;
					}
					as[i] = as[i].parentNode.replaceChild(a1, as[i]);
					as[i] = a1;
					as[i].style.cursor = "pointer";
			   }
			   else if (as[i].tagName.toLowerCase() == "a") 
			   {
					;
			   }
			   else 
			   { 
					continue;
			   }
			   if(as[i].id)
			   {
					if(as[i].id == 'submit_btn')
					{
						 YAHOO.util.Event.on(as[i], 'click', btns_submitHandler); 
					}
					if(as[i].id == 'reset_btn')
					{
						 YAHOO.util.Event.on(as[i], 'click', btns_resetHandler); 
					}
			   }

			   var i1 = document.createElement('i');
			   var i2 = document.createElement('i');
			   var s1 = document.createElement('div');
			   var s2 = document.createElement('div');
			   s1.appendChild(i1);
			   s1.appendChild(s2);
			   while (as[i].firstChild) 
			   {
					s1.appendChild(as[i].firstChild);
			   }
			   as[i].appendChild(s1);
			   as[i] = as[i].insertBefore(i2, s1);
		  }
		  initCategoryMenu();
		  return true;
	 }
};
function IEContentLoaded (w, fn) 
{
	 var d = w.document;
	 done = false;
	 // only fire once
	 var init = function () 
		  {
			   if (!done) 
			   {
					done = true;
					fn();
			   }
		  };
	 // polling for no errors
	 (function () 
	 {
		  try 
		  {
			   // throws errors until after ondocumentready
			   d.documentElement.doScroll('left');
		  } 
		  catch (e) 
		  {
			   setTimeout(arguments.callee, 50);
			   return;
		  }
		  // no errors, fire
		  init();
	 })();
	 // trying to always fire before onload
	 d.onreadystatechange = function() 
		  {
			   if (d.readyState == 'complete') 
			   {
					d.onreadystatechange = null;
					init();
			   }
		  };
}
if (typeof document.fileSize != 'undefined') 
{
	 IEContentLoaded(window, btn.init);
}
else
{
	 YAHOO.ext.EventManager.onDocumentReady(btn.init);
}

