


/* Modified to support Opera */
function bookmarksite(title,url){
if (window.sidebar) // firefox
	window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
	var elem = document.createElement('a');
	elem.setAttribute('href',url);
	elem.setAttribute('title',title);
	elem.setAttribute('rel','sidebar');
	elem.click();
} 
else if(document.all)// ie
	window.external.AddFavorite(url, title);
}


function getCategories() {

  var category_txt;
  

     var category1_name=$("category1").options[$("category1").selectedIndex].text;
     category_txt=category1_name;

    var category2_name=$("category2").options[$("category2").selectedIndex].text;
    category_txt=category_txt+" > "+category2_name;


    var category3_name=$("category3").options[$("category3").selectedIndex].text;
    var category_txt=category_txt+" > "+category3_name;
    

  
  $("category_name").value=category_txt;
}




function CountLeft(field, count, max) {
  // if the length of the string in the input field is greater than the max value, trim it
  if (field.value.length > max)
  field.value = field.value.substring(0, max);
  else
  // calculate the remaining characters
  count.value = max - field.value.length;
}



//Remove Parent Element
function remove() {
document.getElementsByClassName("remove").each( function(el) {

Event.observe(el, "click", function() {
Effect.Fade(el.parentNode.id,{afterFinish:function(){$(el.parentNode.id).remove();return false;}});
});

});

}

//Display or Hide List elements
function showList(list_id) {

Event.observe(list_id+'_more', "click", function() {
$$('#'+list_id+' li').each( function(el) {
  el.show();
});
$(list_id+'_more').hide();
});
  
}




function activeMultiSelect(formName) {

     var form1=document.forms[formName];
     Element.extend(form1);
      var checkboxes=form1.getInputs('checkbox');
      checkboxes.each(function(el) {
         Event.observe(el, "click", function() {
          colorCheckBox(el);
        });
    
      });
  
  

     Event.observe($('selectall'), "click", function() {
      toggleCheckboxes(form1);
     });



}


function checkCheckBoxNumber(formName,min,max,message) {

      var form=document.forms[formName];
      var checkbox_number=countCheckBox(form)

      if ((checkbox_number<min)||(checkbox_number>max)) {alert(sprintf(message,min,max));return false}
      else form.submit();

}



function colorCheckBox(el) {
    var td=el.parentNode;
    var tr=td.parentNode;
    Element.extend(tr);
    if (el.checked) tr.addClassName("selected");
    else  tr.removeClassName("selected");

}



//Select All
function toggleCheckboxes(form) {

    if (this.checked) var condition=false;
    else var condition=true;
    Element.extend(form)
    var buttons =form.getInputs('checkbox')
    // -> only radio buttons of name "education"
    
    buttons.each(function(el) {
      el.checked=condition;
      colorCheckBox(el);
    });

    this.checked=condition;


}


function submitForm(selector,warning) {
  var form=selector.form;
  var action=selector.options[selector.selectedIndex].value;

  if (action==0) return false;

  form.action=action;
  form.method='post';
 
  var launch
  var buttons =form.getInputs('checkbox')
  buttons.each(function(el) {
      if (el.checked==true) launch=true;
    });

  if (launch==true) form.submit();
  else {alert(warning);selector.options[0].selected=true;return false};
  
}


//Count Active Checkboxes
function countCheckBox(form) {


    var buttons =form.getInputs('checkbox')
    var checkbox_number=0;

    buttons.each(function(el) {
    if (el.checked==true)  checkbox_number++;
    });

    return checkbox_number;

}



//Toggle Checkbox 
// show div when type_2 is checked else hide div

function toggle(radio_1,radio_2,div) {

    if ($(radio_2).checked==true) $(div).show();
    
    Event.observe($(radio_2), "focus", function() {
    $(div).show();
    });
    Event.observe($(radio_1), "focus", function() {
    $(div).hide();
    });
}

function magnify() {

    document.getElementsByClassName("magnify").each( function(el) {
		
    var title=el.firstChild.title;

     
    Event.observe(el, "mouseover", function() {
    el.firstChild.title = "";
    return overlib('<img src="'+el.id+'" width="200" />',OFFSETY,20,CAPTION,title,CENTER,FGCOLOR, '#ffffcc', BGCOLOR, '#333333', BORDER, 4);

    })
    
    Event.observe(el, "mouseout", function() {
    el.firstChild.title = title;
    return nd();
    })
    
    });
    
    $$(".inform","a.action").each( function(el) {
    var title=el.title;
    el.title = "";
    Event.observe(el, "mouseover", function() {
    return overlib(title,CAPTION,el.innerHTML, FGCOLOR, '#ffffcc', BGCOLOR, '#333333', BORDER, 1,DELAY, 500);
    })
    
    Event.observe(el, "mouseout", function() {
    return nd();
    })
    
    });


}


function changeSrc(el) {
  

  var link =el.href;
  var src=el.firstChild.src;

  el.href=src;
  el.firstChild.src=link;

  
  
}



		// This code is in the public domain. Feel free to link back to http://jan.moesen.nu/
		function sprintf()
		{
			if (!arguments || arguments.length < 1 || !RegExp)
			{
				return;
			}
			var str = arguments[0];
			var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
			var a = b = [], numSubstitutions = 0, numMatches = 0;
			while (a = re.exec(str))
			{
				var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
				var pPrecision = a[5], pType = a[6], rightPart = a[7];
				
				//alert(a + '\n' + [a[0], leftpart, pPad, pJustify, pMinLength, pPrecision);

				numMatches++;
				if (pType == '%')
				{
					subst = '%';
				}
				else
				{
					numSubstitutions++;
					if (numSubstitutions >= arguments.length)
					{
						alert('Error! Not enough function arguments (' + (arguments.length - 1) + ', excluding the string)\nfor the number of substitution parameters in string (' + numSubstitutions + ' so far).');
					}
					var param = arguments[numSubstitutions];
					var pad = '';
					       if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
					  else if (pPad) pad = pPad;
					var justifyRight = true;
					       if (pJustify && pJustify === "-") justifyRight = false;
					var minLength = -1;
					       if (pMinLength) minLength = parseInt(pMinLength);
					var precision = -1;
					       if (pPrecision && pType == 'f') precision = parseInt(pPrecision.substring(1));
					var subst = param;
					       if (pType == 'b') subst = parseInt(param).toString(2);
					  else if (pType == 'c') subst = String.fromCharCode(parseInt(param));
					  else if (pType == 'd') subst = parseInt(param) ? parseInt(param) : 0;
					  else if (pType == 'u') subst = Math.abs(param);
					  else if (pType == 'f') subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
					  else if (pType == 'o') subst = parseInt(param).toString(8);
					  else if (pType == 's') subst = param;
					  else if (pType == 'x') subst = ('' + parseInt(param).toString(16)).toLowerCase();
					  else if (pType == 'X') subst = ('' + parseInt(param).toString(16)).toUpperCase();
				}
				str = leftpart + subst + rightPart;
			}
			return str;
		}


function Set_Cookie( name, value, expires, path, domain, secure ) {
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct 
expires time, the current script below will set 
it for x number of days, to make it for hours, 
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
( ( path ) ? ";path=" + path : "" ) + 
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}



 
