﻿function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return strReturn;
}

function URLDecode (encodedString) {
  var output = encodedString;
  var binVal, thisString;
  var myregexp = /(%[^%]{2})/;
  while ((match = myregexp.exec(output)) != null
             && match.length > 1
             && match[1] != '') {
    binVal = parseInt(match[1].substr(1),16);
    thisString = String.fromCharCode(binVal);
    output = output.replace(match[1], thisString);
  }
  return output;
}



function URLEncode (clearString) {
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    	output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}

function SubmitOnEnter(myfield, e)
{
	var keycode;
	if (window.event)
		keycode = window.event.keyCode;
	else if (e)
		keycode = e.which;
	else
		return true;
	if (keycode == 13)
	{
		SearchSite();
		return false;
	}
	else
		return true;
}





function insertTab(event,obj) {
    var tabKeyCode = 9;
    if (event.which) // mozilla
        var keycode = event.which;
    else // ie
        var keycode = event.keyCode;
    if (keycode == tabKeyCode) {
        if (event.type == "keydown") {
            if (obj.setSelectionRange) {
                // mozilla
                var s = obj.selectionStart;
                var e = obj.selectionEnd;
                obj.value = obj.value.substring(0, s) + 
                    "\t" + obj.value.substr(e);
                obj.setSelectionRange(s + 1, s + 1);
                obj.focus();
            } else if (obj.createTextRange) {
                // ie
                document.selection.createRange().text="\t"
                obj.onblur = function() { this.focus(); this.onblur = null; };
            } else {
                // unsupported browsers
            }
        }
        if (event.returnValue) // ie ?
            event.returnValue = false;
        if (event.preventDefault) // dom
            event.preventDefault();
        return false; // should work in all browsers
    }
    return true;
}

    function IsNumeric(sText)

    {
       var ValidChars = "0123456789";
       var IsNumber=true;
       var Char;

     
       for (i = 0; i < sText.length && IsNumber == true; i++) 
          { 
          Char = sText.charAt(i); 
          if (ValidChars.indexOf(Char) == -1) 
             {
             IsNumber = false;
             }
          }
       return IsNumber;
       
    }    



    //source = textarea to copy content from
    //target = textarea to copy content to
    function updateTextArea(source, target)
    {
        var textareas = document.getElementsByTagName("textarea");
        
        //find source textarea
      	for (var j=0; j<textareas.length; j++) 
	  	{
			if(textareas[j].id.indexOf(source) > 0)
			{
				//alert(textareas[j].value);
				sourceText = textareas[j].value;
				break;
			}
      	}	
      	
      	//find and set target textarea
      	for (var j=0; j<textareas.length; j++) 
	  	{
			if(textareas[j].id.indexOf(target) > 0)
			{
				//alert(textareas[j].value);
				textareas[j].value = sourceText;
				break;
			}
      	}      	
      	    
    }
    
    
    //given an element and max words, will count the number of words in it and
    //update labelelement with maxwords minus that count
    function updateWordCount(labelelement, element, maxwords)
    {
	    var textbox = $(element);
		var y = textbox.value;
        //alert(y);
        
	    var r = 0;
	    a=y.replace('\n',' ');
	    a=a.split(' ');
	    for (z=0; z<a.length; z++) 
	    {
		    if (a[z].length > 0)
		    {
			    r++;
		    }
	    }
	    var count = maxwords-r;
	    $(labelelement).innerHTML = 'You have ' +count +' words left';
    }
   
    //used in voucher preview page - update word count, and
    //at the same time copy text over to the voucher preview textbox
    function updateWordCountAndCopy(labelelement, element, maxwords, targetid)
    {
	    var textbox = $(element);
		var y = textbox.value;

	    var r = 0;
	    a=y.replace('\n',' ');
	    a=a.split(' ');
	    for (z=0; z<a.length; z++) 
	    {
		    if (a[z].length > 0)
		    {
			    r++;
		    }
	    }
	    var count = maxwords-r;
	    $(labelelement).innerHTML = 'You have ' +count +' words left';
	    
	    copyTextFromTo(element, targetid, 30); //preview limit is 30words
    }   
    
    //copies text from one text box to voucher preview box
    //but only until preview limit is reached (after which the
    //three dots ...more is shown
    function copyTextFromTo(sourceid, targetid, limit)
    {
        var y = $(sourceid).value
	    var r = 0;
	    a=y.replace('\n',' ');
	    a=a.split(' ');
	    for (z=0; z<a.length; z++) 
	    {
		    if (a[z].length > 0)
		    {
			    r++;
		    }
	    }      
        noOfWords = r;
        if(noOfWords > limit)
            return
        else $(targetid).innerHTML = $(sourceid).value;
    }
   
    function showElement(elementId)
    {
        if($(elementId))
            $(elementId).style.display = '';
    }   
   
    function toggleElementOn(elementId, value)
    {
            $(elementId).style.display = '';
    }   
   
    function toggleElementOff(elementId, value)
    {
            $(elementId).style.display = 'none';
    }   
       
    function toggleElement(elementId)
    {
        if($(elementId).style.display == 'none')
        {
            $(elementId).style.display = '';
        }
        else
        {
            $(elementId).style.display = 'none';
        }
    }
    /*function PhotoPortraitInstr(target, img)
    {
        return overlib('',
        FGBACKGROUND,'images/'+ img, NOJUSTY, WIDTH, 169, HEIGHT, 225, 
        REF,target, REFC, 'UL', REFP,'LL',REFX,0, REFY, -5, BORDER,3,BGCOLOR,'#C3C3C3');    
    } */   
    
    function PhotoCentreFront(target, img)
    {
        return overlib('',
        FGBACKGROUND,'images/'+ img, WIDTH, 375, HEIGHT, 225,  HIDESELECTBOXES,
        REF,target, REFC, 'LR', REFP,'LL',REFX,-5, REFY, 3, BORDER,3,BGCOLOR,'#C3C3C3');    
    }    
    
    function PhotoPortrait(target, img)
    {
        return overlib('',
        FGBACKGROUND,'images/'+ img, WIDTH, 169, HEIGHT, 225,  HIDESELECTBOXES,
        REF,target, REFC, 'LR', REFP,'LL',REFX,5, REFY, 3, BORDER,3,BGCOLOR,'#C3C3C3');    
    }
    
    //takes full image path. eg. http://wwww.mysite.com/images...etc
    function PhotoPortraitSC(target, img)
    {
        return overlib('',
        FGBACKGROUND, img, WIDTH, 169, HEIGHT, 225,  HIDESELECTBOXES,
        REF,target, REFC, 'LR', REFP,'LL',REFX,5, REFY, 3, BORDER,3,BGCOLOR,'#C3C3C3');    
    }    
    
    function CardioPhotoPortrait(target, img)
    {
        return overlib('',
        FGBACKGROUND,'images/'+ img, WIDTH, 169, HEIGHT, 225,  HIDESELECTBOXES,
        REF,target, REFC, 'LR', REFP,'LL',REFX,-15, REFY, 3, BORDER,3,BGCOLOR,'#C3C3C3');    
    }
    
    function PhotoPortraitM(target, img)
    {
        return overlib('',
        FGBACKGROUND,'images/'+ img, WIDTH, 110, HEIGHT, 146,  HIDESELECTBOXES,
        REF,target, REFC, 'LR', REFP,'LL',REFX,5, REFY, 3, BORDER,3,BGCOLOR,'#C3C3C3');    
    }    
    
    //takes full image path. eg. http://wwww.mysite.com/images...etc
    function PhotoPortraitMSC(target, img)
    {
        return overlib('',
        FGBACKGROUND, img, WIDTH, 110, HEIGHT, 146,  HIDESELECTBOXES,
        REF,target, REFC, 'LR', REFP,'LL',REFX,5, REFY, 3, BORDER,3,BGCOLOR,'#C3C3C3');    
    }     
    
    //img = img filename
    function PhotoLandscape(target, img)
    {
        return overlib('',
        FGBACKGROUND,'images/'+ img, WIDTH, 300, HEIGHT, 225,  HIDESELECTBOXES,
        REF,target, REFC, 'LR', REFP,'LL',REFX,-5, REFY, 3, BORDER,3,BGCOLOR,'#C3C3C3');    
    }
    
    //takes full image path. eg. http://wwww.mysite.com/images...etc
     function PhotoLandscapeSC(target, img)
    {
        return overlib('',
        FGBACKGROUND, img, WIDTH, 300, HEIGHT, 225,  HIDESELECTBOXES,
        REF,target, REFC, 'LR', REFP,'LL',REFX,-5, REFY, 3, BORDER,3,BGCOLOR,'#C3C3C3');    
    }

    function CardioPhotoLandscape(target, img)
    {
        return overlib('',
        FGBACKGROUND,'images/'+ img, WIDTH, 300, HEIGHT, 225,  HIDESELECTBOXES,
        REF,target, REFC, 'LR', REFP,'LL',REFX,-5, REFY, 3, BORDER,3,BGCOLOR,'#C3C3C3');    
    }

    /*REFC (ol_refc) defines the corner of the reference object, and REFP (ol_refp) the corner of the popup*/
    function RoomPhotoLandscape(target, img)
    {
        return overlib('',
        FGBACKGROUND,'images/'+ img, WIDTH, 300, HEIGHT, 225, HIDESELECTBOXES,
        REF,target, REFC, 'LL', REFP,'LR',REFX,-5, REFY, 3, BORDER,3,BGCOLOR,'#C3C3C3');    
    }

    function RoomPhotoPortrait(target, img)
    {
        return overlib('',
        FGBACKGROUND,'images/'+ img, WIDTH, 169, HEIGHT, 225, HIDESELECTBOXES,
        REF,target, REFC, 'LL', REFP,'LR',REFX,-5, REFY, 3, BORDER,3,BGCOLOR,'#C3C3C3');    
    }

	function GalleryShow(prefix, target)
    {
		
		//get the row containing the gallery buttons and clear current highlighted button
		var name = prefix + '_gallerybuttons';
		target = prefix + target;
  		var tablerow = $(name);

        var links = tablerow.getElementsByTagName("a");

      	for (var j=0; j<links.length; j++) 
	  	{
			if(links[j].className.match('active'))
			{
			    links[j].className = '';
			    break;
			}
      	}
		
		//highlight the element that was clicked
		$(target).className = 'active';	
		$(target).blur(); //remove focus (browser selected element outline)
    }


    function LocationExplanationOver(target)
    {
        return overlib('<b><i>Personal Training Solutions include</i></b><br />Personal Training Studios, Mobile Personal Training, Fitness Centres with Personal Training Services, Bootcamps, ...',
        FGCLASS, 'popup', TEXTPADDING, 5, WIDTH, 270, ABOVE, OFFSETX, -50,
        NOJUSTY, NOJUSTX, BORDER,3,BGCOLOR,'#FFBA00',FGCOLOR,'#FFFFAA');
    }    
    
    
    function ServicesExplanationOver(target)
    {
        return overlib('<b><i>Personal Training Solutions include</i></b><br />Personal Training Studios, Mobile Personal Training, Fitness Centres with Personal Training Services, Bootcamps, ...',
        FGCLASS, 'popup', TEXTPADDING, 5, WIDTH, 270, ABOVE, OFFSETX, -50,
        NOJUSTY, NOJUSTX, BORDER,3,BGCOLOR,'#FFBA00',FGCOLOR,'#FFFFAA');        
        //FGCLASS, 'popup', TEXTPADDING, 5, WIDTH, 270, REF, target, REFC, 'UL', REFP,'LL',REFX,20, REFY, -5, BORDER,3,BGCOLOR,'#FFBA00',FGCOLOR,'#FFFFAA');
    }    
 
    
    function GetSearchBlock(searchType)
    {
        //alert(document.getElementById('main_search_block').innerHTML);
        //alert(document.getElementById('lifestyle_search_block').innerHTML);
        
        //document.getElementById('main_search_block').innerHTML = document.getElementById('lifestyle_search_block').innerHTML;
        //$('main_search_block').innerHTML = 'sss';
        //$('main_search_block').innerHTML = $('lifestyle_search_block').innerHTML;
        
            if(searchType == "personal_training_search")
            {
                $('main_search_block').style.display = 'none';
                //$('featuredtable').style.display = 'none';
                $('personal_training_search').style.display = 'block';
                
            }
            else if(searchType == "fitness_centres_search")
            {
                $('main_search_block').style.display = 'none';
                //$('featuredtable').style.display = 'none';
                $('fitness_centres_search').style.display = 'block';            
            }
            else if(searchType == "lifestyle_search")
            {
                $('main_search_block').style.display = 'none';
                $('featuredtable').style.display = 'none';
                $('lifestyle_search').style.display = 'block';            
            }
            else if(searchType == "sports_centres_search")
            {
                /*$('main_search_block').style.display = 'none';
                $('sports_centres_search').style.display = 'block';            */
            }            
            else if(searchType == "browse_vouchers")
            {
                /*$('main_search_block').style.display = 'none';
                $('sports_centres_search').style.display = 'block';            */
            }                             
            
    }    
    
    
function $() {
    var elements = new Array();

    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];

        if (typeof element == 'string')
            element = document.getElementById(element);

        if (arguments.length == 1)
            return element;

        elements.push(element);
    }

    return elements;
}    