/**
 * Javascript helps the page look better
 * However, the side should be fully functional without JavaScript
 */
var language="en";

function showElement(element) {
   if (element!=null)  {
       if (typeof( element.style) != 'undefined')
            element.style.display='';
        else
            element.visibility = '';
   }
}

function hideElement(element) {
   if (element!=null)  {
        if (typeof( element.style) != 'undefined')
            element.style.display='none';
        else
            element.visibility = 'hide';
   }
}

function selectionCanged(radioObj) {
     negativeSecion=document.getElementById("negative-review");
   if ( negativeSecion!=null)
      if(getCheckedValue(radioObj)<0)
        showElement(negativeSecion);
       else
        hideElement(negativeSecion);
}

function getCheckedValue(radioObj) {
    if(!radioObj)
    return "";
    var radioLength = radioObj.length;
    if(radioLength == undefined)
    if(radioObj.checked)
    return radioObj.value;
    else
    return "";
    for(var i = 0; i < radioLength; i++) {
      if(radioObj[i].checked) {
        return radioObj[i].value;
      }
    }
    return "";
  }


    function setCheckedValue(radioObj, value) {
                 alert(radioObj)
      if(!radioObj)
        return "";
     var radioLength = radioObj.length;
     alert(radioLength);
        if(radioLength != undefined)
        for(var i = 0; i < radioLength; i++) {
          if(radioObj[i].value==value)
            radioObj[i].checked="true";
          else
           radioObj[i].checked="false";
        }
    }

    function password_onclick() {
     // if ( document.getElementById("isAnonymousUser")!=null) {
    //  document.getElementById("isAnonymousUser").checked="false";
     // }
   //   setCheckedValue(document.getElementsByName("isNewUser")[1], "false");
      document.getElementById("isExistingUser").checked="true";
    }


  function anonymous_onclick() {
    document.getElementById("validationPassword").disabled=true;
    showElement(document.getElementById("validationBlock"));
    document.getElementById("validationUserName").value='';
    document.getElementById("validationPassword").value='';
    hideElement(document.getElementById("passwordBlock"));
  }

  function newUserRadio_onclick() {
   if (document.getElementById("validationPassword")!=null) {
     //document.getElementById("validationPassword").disabled=true;
     document.getElementById("validationPassword").value='';
   }
    if (document.getElementById("validationBlock")!=null) {
       hideElement(document.getElementById("validationBlock"));
    }
  }

  function existingUserRadio_onclick() {
    if (document.getElementById("validationPassword")!=null) {
          document.getElementById("validationPassword").disabled=false;
    }
  }

  function userName_onclick() {
    if (document.getElementById("validationPassword")!=null)
       document.getElementById("validationPassword").disabled=false;
  //  document.getElementById("isAnonymousUser").checked="false";
   // document.getElementById("isExistingUser").checked="true";
    hideElement(document.getElementById("validationBlock"));
    showElement(document.getElementById("passwordBlock"));
  }
/*
  function Submit1_onclick() {

    //validate the form
    if (getCheckedValue(document.getElementById("isNewUser"))=="true")
     return true;

    // existing user should have both username & password
    if (
      document.getElementById("validationUserName").value==null ||
      document.getElementById("validationUserName").value==""
    ) {
      alert( message[language] );
      alert('<bean:message key="validate.user.name.needed"/>');
      return false;
    }

    if (
      document.getElementById("validationPassword").value==null ||
      document.getElementById("validationPassword").value==""
    ) {
      alert( message[language] );
      alert('<bean:message key="validate.user.password.needed"/>');
      return false;
    }
    return true;
  }
*/
function onLoad(new_language) {
   changecss('.otherCountry','display','none');
    changecss('.showAllButton','display','inline');
     changecss('#showMapButton','display','inline');
   resizeImages();

    if (document.getElementById("passwordBlock")!=null)
         hideElement(document.getElementById("passwordBlock"));

    if ( typeof(new_language)!='undefined' && language!=null && language.length>0) {
          language=new_language;
       }
    if (
        document.getElementById("searchActionFormInput")!=null &&
      ( document.searchActionForm.elements[1].value==null ||
       document.searchActionForm.elements[1].value.length==0)) {
        searchBoxImage="url(img/prompt_"+language+".png)";
        document.searchActionForm.elements[1].style.backgroundImage=searchBoxImage;
    }

    negativeSecion=document.getElementById("negative-review");
    if ( negativeSecion!=null) {
      var x=document.getElementsByName("rating");
       if(getCheckedValue(x[0])>=0)
        hideElement(negativeSecion);
    }


}


function searchBoxChanged() {
   document.searchActionForm.elements[1].style.backgroundColor="white";
   document.searchActionForm.elements[1].style.backgroundImage="none";
}


function resizeImages() {
     var fp_image=document.getElementById("fp_image");
      if ( fp_image !=null ) {
        var aspect= (1000. * fp_image.height)/fp_image.width;
        var windowWidth=getWindowWidth();
        fp_image.width = 0.76*windowWidth/2.;
        if (windowWidth>600)
          fp_image.width +=0.2*(windowWidth-600)
        fp_image.height = (aspect * fp_image.width) / 1000.;
      }

     var loc_image=document.getElementById("main-image");
     if (loc_image!=null) {
       var aspect= (1000. * loc_image.height)/loc_image.width;
        var windowWidth=getWindowWidth();
        loc_image.width = 0.3*windowWidth/2.;
        if (windowWidth>800)
          loc_image.width +=0.2*(windowWidth-800)
          loc_image.height = (aspect * loc_image.width) / 1000.;
     }



      // resize text form
      var searchActionFormInput=document.getElementById("searchActionFormInput");
      if (searchActionFormInput!=null)
          searchActionFormInput.size=getWindowWidth()/14.;

  }

// -----------------------------------------------------
// Get window width in pixels; returns 0 if unidentifiable.
// -----------------------------------------------------
function getWindowWidth(){
  var ww = 0;
  d = document;
   if ( typeof window.innerWidth != 'undefined' )
     ww = window.innerWidth;  // NN and Opera version
   else
   {
     if ( d.documentElement
       && typeof d.documentElement.clientWidth!='undefined'
       && d.documentElement.clientWidth != 0 )
       ww = d.documentElement.clientWidth;
     else
       if ( d.body
         && typeof d.body.clientWidth != 'undefined' )
         ww = d.body.clientWidth;
   }
   return ww;
}

// -----------------------------------------------------
// Adjust image size according to window width
// -----------------------------------------------------
function resizeimg() {
  var ww = getWindowWidth();

  if (ww>0) {
    if (ww<550) changeimg(small)
    else if (ww>900) changeimg(large)
    else changeimg (medium);
  }


function findPosition(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent)
        do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);

    return [curleft,curtop];
}


function addRectangle(element) {
  newdiv=document.createElement("div");
  newdiv.style.position="absolute";
  [curleft,curtop]=findPosition(element);
  newdiv.style.left = curleft+1+"px";
  newdiv.style.top  = curtop+1+"px";
  reviewTable=document.getElementById(element.id);
  row=reviewTable.getElementsByTagName("tr")[1];

  newdiv.style.width =  reviewTable.offsetWidth+"px";
  newdiv.style.height = reviewTable.offsetHeight*0.5+"px";
  newdiv.style.opacity= 0.4;
  //alert(row.bgColor);
  newdiv.style.backgroundColor = row.bgColor;
  newdiv.style.visibility = 'visible';
  newdiv.style.zindex=-1;

  document.body.appendChild(newdiv);
  row.bgColor =  reviewTable.bgColor
}


function selectAllCategories() {
  if(document.forms[1].selectedCategories[0].checked==true) {
    document.forms[1].selectedCategories[1].checked=false;
    for(i=2;i<document.forms[1].selectedCategories.length;i++){
      document.forms[1].selectedCategories[i].checked=true;
    }
  }
}

function clearAllCategories() {
  if( document.forms[1].selectedCategories[1].checked==true) {
    document.forms[1].selectedCategories[0].checked=false;
    for(i=2;i<document.forms[1].selectedCategories.length;i++){
      document.forms[1].selectedCategories[i].checked=false;
    }
  }
}

function selectCategory() {
  document.forms[1].selectedCategories[0].checked=false;
  document.forms[1].selectedCategories[1].checked=false;
}

}

function showsize(){
  alert("Window width = " + getWindowWidth());
}

  function changecss(theClass,element,value) {
          //courtesy Shawn Olson & http://www.shawnolson.net
           var cssRules;

           var added = false;
           for (var S = 0; S < document.styleSheets.length; S++){

      if (document.styleSheets[S]['rules']) {
            cssRules = 'rules';
           } else if (document.styleSheets[S]['cssRules']) {
            cssRules = 'cssRules';
           } else {
            //no rules found... browser unknown
           }

            for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
             if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
              if(document.styleSheets[S][cssRules][R].style[element]){
              document.styleSheets[S][cssRules][R].style[element] = value;
              added=true;
                  break;
              }
             }
            }
            if(!added){
            if(document.styleSheets[S].insertRule){
                            document.styleSheets[S].insertRule(theClass+' { '+element+': '+value+'; }',document.styleSheets[S][cssRules].length);
                          } else if (document.styleSheets[S].addRule) {
                                  document.styleSheets[S].addRule(theClass,element+': '+value+';');
                          }
            }
           }
          }

function showAllCountries() {
  changecss('.otherCountry','display','inline');
  changecss('.showAllButton','display','none');
}
