
window.onerror=function(desc,page,line,chr){
/* alert('JavaScript error occurred! \n'
  +'\nError description: \t'+desc
  +'\nPage address:      \t'+page
  +'\nLine number:       \t'+line
 );*/
}

$(function(){
 $('a').focus(function(){this.blur();});
 SI.Files.stylizeAll();


 $('input.text-default').each(function(){
  $(this).attr('default',$(this).val());
 }).focus(function(){
  if($(this).val()==$(this).attr('default'))
   $(this).val('');
 }).blur(function(){
  if($(this).val()=='')
   $(this).val($(this).attr('default'));
 });

 $('input.text,textarea.text').focus(function(){
  $(this).addClass('textfocus');
 }).blur(function(){
  $(this).removeClass('textfocus');
 });

 var popopenobj=0,popopenaobj=null;
 $('a.popup').click(function(){
  var pid=$(this).attr('rel').split('|')[0],_os=parseInt($(this).attr('rel').split('|')[1]);
  var pobj=$('#'+pid);
  if(!pobj.length)
   return false;
  if(typeof popopenobj=='object' && popopenobj.attr('id')!=pid){
   popopenobj.hide(50);
   $(popopenaobj).parent().removeClass(popopenobj.attr('id').split('-')[1]+'-open');
   popopenobj=null;
  }

  if(pobj.is(':hidden')){
   var _o=$(this).offset();
   //var _l=parseInt(_o.left)-parseInt(_os)+parseInt($(this).width())/2;
   var _l=($('.wrap','#top').offset().left+$('.wrap','#top').width())-pobj.width();
   var _t=parseInt(_o.top)+parseInt($(this).height())+5;
   pobj.css({left:_l,top:_t}).slideDown(function(){
    $('div.close a',pobj).click(function(){
     pobj.slideUp();
     $(popopenaobj).parent().removeClass(pobj.attr('id').split('-')[1]+'-open');
     popopenobj=0;
    });
    var fobj=$('form input.text:first',pobj);
    if(fobj.length)
     fobj.get(0).focus();
   });
   $(this).parent().addClass(pid.split('-')[1]+'-open');
   popopenobj=pobj;
   popopenaobj=this;
  }else{
   pobj.slideUp();
   $(this).parent().removeClass(pid.split('-')[1]+'-open');
   popopenobj=0;
  }
  return false;
 });
 
 $('p.images img').click(function(){
  var newbg=$(this).attr('src').split('bg/bg')[1].split('-thumb')[0];
  $(document.body).css('backgroundImage','url('+_siteRoot+'images/bg/bg'+newbg+'.jpg)');
 
  $(this).parent().find('img').removeClass('on');
  $(this).addClass('on');
  return false;
 });

 $(window).load(function(){
  var css_ims=['bar-brand-bg.jpg','bar-brand.png','bar-cms-bg.jpg','bar-cms.png','bar-crm-bg.jpg','bar-crm.png',
   'bar-ecommerce-bg.jpg','bar-ecommerce.png','bar-email-bg.jpg','bar-email.png','bar-real-estate-bg.jpg',
   'bar-real-estate.png','bar-seo-bg.jpg','bar-seo.png','bar-video-bg.jpg','bar-video.png','bar-web-design-bg.jpg',
   'bar-web-design.png','blog-large-img-bg.png','blog-tiny-img-bg.png','bookmark.png','bookmarks.png','cal-arrl.gif',
   'cal-arrr.gif','cal-bg.png','cal-bl.gif','cal-br.gif','cal-tl.gif','cal-tr.gif','cal-year.gif','close-map.png',
   'close-tabs.png','colours.png','column-third-bg.png','contact-reset.png','content-bg.png','down.gif','error.png',
   'feedback-bg.png','feedback.png','file.gif','find-out-more.png','footer-bg.png','google.jpg','h2-award-info.png',
   'h2-awards-and-features.png','h2-careers-form.png','h2-careers.png','h2-cms.png','h2-comment-on-this-video.png',
   'h2-current-positions.png','h2-enquiry-form.png','h2-latest-news.png','h2-london-office-map.png','h2-london-office.png',
   'h2-perth-office.png','h2-post-a-comment.png','h2-recent-posts.png','h4-blog-archive.png','h4-blog-categories.png',
   'h4-recent-posts.png','h4b-blog-archive.gif','h4b-blog-categories.gif','h4b-calendar.gif','h4b-latest-comments.gif',
   'h4b-recent-posts.gif','header-bg.png','hr.gif','li-arrow.png','media-centre-bg.png','media-centre-pulse.png',
   'media-centre-video-bg.png','media-centre-video-hover.png','media-centre.png','nav-bg.png','newsletter-text.gif',
   'ontwerp-tag.png','ontwerp.png','popup-client-bg.png','popup-cms-bg.png','popup-toolbox-bg.png','post-your-comments.png',
   'sc-img-bg.png','search-bg.png','text-bg.png','text-small-bg.png','textarea-bg.png','textarea-blog-bg.png',
   'textarea-small-bg.png','toolbox-arrow.gif','toolbox-arrow.png','toolbox-reset.png','toolbox-save.png','top-bg.png',
   'top.gif','view-brand.png','view-cms.png','view-crm.png','view-ecommerce.png','view-email.png','view-real-estate.png',
   'view-seo.png','view-video.png','view-web-design.png'];
  $.each(css_ims,function(){(new Image()).src=_siteRoot+'images/'+this;});
  var css_cims=['a2006.png','a2007.png','a2008.png','a2009.png','add-a-comment.png','all-services.png',
   'application-development.png','apps.png','archive.png','calendar.png','comment.gif','comments-bg.gif',
   'e-com.png','featured.png','feeback-submit.png','get-directions.png','go.png','h4-cms.png','h4-crm.png',
   'h4-otp.png','li-arrow.png','login.png','logo.png','misc.png','nav.png','noresult.png','online.png',
   'pagination-on.gif','pagination.png','perma-bg.gif','sign-up-now.png','sign-up.png','silde-nav.png',
   'submit-form.png','submit.png','tab-cms.png','tab-crm.png','tab-featured.png','tab-news.png','colour.css',
   'tab-otp.png','tab-video.png','testimonial-bg.png','testimonial.png','user-login.png','web-services.png'];
 });

 $('p.colours a').click(function(){
  var sheet=document.createElement('link');
  sheet.setAttribute('rel','stylesheet');
  sheet.setAttribute('type','text/css');
  sheet.setAttribute('media','all');
  sheet.setAttribute('href',_siteRoot+'css/colour.css');

  if($.browser.safari)
   $('head').append(sheet);
  else
   $(document.body).append(sheet);

  $(this).parent().find('a').removeClass('on');
  $(this).addClass('on');
  return false;
 });

 $('div.bar').slice(1).each(function(){
  $('h2',this).addClass('closed');
  $('div',this).hide();
 });
 $('div.bar h2').click(function(){
  scroll(this,-120);
  $(this).toggleClass('closed').parent().find('div').slideToggle();
 });
 $('#close-tabs').click(function(){
  $('div.bar div:visible').slideUp().parent().find('h2').addClass('closed');
  return false;
 });
 
 function h42h4(obj,t){
  var aobjs=$('div.column-right>*'),sel=false;
  var len=aobjs.length;
  for(var i=0;i<len;i++){
   if(aobjs[i].tagName.toLowerCase()=='h4') sel=false;
   if(sel) switch(t){
    case 's' : $(aobjs[i]).show();break;
    case 'h' : $(aobjs[i]).hide();break;
    case 't' : $(aobjs[i]).toggle();break;
    default : $(aobjs[i]).slideToggle(500);break;
   }
   if(aobjs[i]==obj) sel=true;
  }
  switch(t){
   case 's' : $(obj).removeClass('closed');break;
   case 'h' : $(obj).addClass('closed');break;
   default : $(obj).toggleClass('closed');break;
  }
 }
 var h4rp=unescape(get_cookie('id_blog_pref')||'').split(' ');
 
 $('div.column-right h4').css({cursor:'pointer'}).each(function(){
  if($(this).is('.blog-archive'))
   h42h4(this,'h');

 }).click(function(){
  var rel=$(this).attr('class').replace(/\s?closed\s?/,'');

  if(!h4rp.in_array(rel))
   h4rp[h4rp.length]=rel;
  else if(h4rp.in_array(rel))
   h4rp.remove(rel);

  set_cookie('id_blog_pref',h4rp.join(' '),365,'/');
  
  h42h4(this);
 });
 for(var h=0;h<h4rp.length;h42h4($('div.column-right h4.'+h4rp[h++]).get(0),'t'));
});

// Other functions -->
function scroll(obj,offset){
 if(typeof obj.pathname=='undefined'){
  var $target=$(obj);
 }else if(location.pathname.replace(/^\//,'')==obj.pathname.replace(/^\//,'') && location.hostname==obj.hostname){
  var $target=$(obj.hash);
  $target=$target.length&&$target||$('[name='+obj.hash.slice(1)+']');
 }
 if($target.length){
  var targetOffset=$target.offset().top+offset;
  $('html,body').stop().animate({scrollTop:targetOffset},500,'swing');
  return false;
 }
}



var client_root=_root+'client/';
function client_login(form){
 $.post(client_root,{user:form.client_user.value,pass:form.client_pass.value},
  function(data){
   if(data=='0') $('#popup-client p.error').fadeIn();
   else location.href=client_root;
  }
 );
}

function cms_login(form){
 $.post(_siteRoot+'ajax-login.php',{user:form.cms_user.value,pass:form.cms_pass.value},
  function(data){
   if(data=='0') $('#popup-cms p.error').fadeIn();
   else location.href=_root+'wp-admin/';
  }
 );
}

Array.prototype.in_array=function(v){
 for(var i in this)
  if(this[i]==v)
   return true;
 return false;
}
Array.prototype.remove=function(s){
 for(i=0;i<this.length;i++)
  if(s==this[i])
   this.splice(i,1);
}

var star_off=_siteRoot+'images/star-off.png',star_on=_siteRoot+'images/star-on.png',star_html='<p class="stars" rel="%s%">';
for(var i=1;i<6;i++)star_html+='<img src="'+star_off+'" alt="" id="star_%s%_'+i+'" onmouseover="feedback_stars(this,\'over\',\'%s%\','+i+');" onmouseout="feedback_stars(this,\'out\',\'%s%\','+i+');" onclick="feedback_stars(this,\'click\',\'%s%\','+i+');" width="15" height="15" />';star_html+='<input type="hidden" id="rating_%s%" name="rating_%s%" value="-1" /></p>';

var fb_html='<div id="feedback_div"><form action="'+_siteRoot+'feedback.php" method="post"><a href="#" id="fb_close" onclick="feedback_close();return false;" onfocus="blur();">Close</a>'+
'<div class="rate"><p>This page</p><p class="indent">Design:</p>'+star_html.replace(/%s%/gi,'page_design')+'<p class="indent">Content:</p>'+star_html.replace(/%s%/gi,'page_content')+'<p class="indent">Ease of use:</p>'+star_html.replace(/%s%/gi,'page_ease')+'<p class="indent">Overall:</p>'+star_html.replace(/%s%/gi,'page_overall')+'</div>'+
'<div class="rate"><p>Whole site</p><p class="indent">Design:</p>'+star_html.replace(/%s%/gi,'site_design')+'<p class="indent">Content:</p>'+star_html.replace(/%s%/gi,'site_content')+'<p class="indent">Ease of use:</p>'+star_html.replace(/%s%/gi,'site_ease')+'<p class="indent">Overall:</p>'+star_html.replace(/%s%/gi,'site_overall')+'</div>'+
'<div class="form"><label>Name: <input type="text" name="name" value="" class="text" /></label><label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Email: <input type="text" name="email" value="" class="text" /></label><label class="ta">Comments:<br /><textarea name="comments" cols="10" rows="5"></textarea></label><br style="clear:both;" /><input type="submit" name="submit" class="button" value="" /></div>'+
'</form></div>';

function feedback(obj){
 if(fb_html!=''){
  jQuery(document.body).append(fb_html);
  fb_html='';
  _offset=jQuery(obj).offset();
  jQuery('#feedback_div').css({'left':_offset.left-jQuery('#feedback_div').width()+jQuery(obj).width()-30,'top':_offset.top-240});
 }
 if(jQuery('#feedback_div').is(':visible')) jQuery('#feedback_div').fadeOut(250);
 else jQuery('#feedback_div').fadeIn(250);
}
function feedback_close(){
 if(jQuery('#feedback_div').is(':visible'))
  jQuery('#feedback_div').fadeOut(250);
}
jQuery(document).click(function(e){
 if(jQuery('#feedback_div').is(':visible')){
  var obj=e.target,ids=[];
  while(obj.parentNode){
   ids[ids.length]=obj.id;
   obj=obj.parentNode;
  }
  if(!ids.in_array('feedback_div') && !ids.in_array('feedback_a'))
   jQuery('#feedback_div').fadeOut(250);
 }
});
var fb_r=[];
function feedback_stars(obj,b,s,r){
 switch(b){
  case 'over' :
   for(var i=1;i<6;i++){
    if(i<=r) jQuery('#star_'+s+'_'+i).attr('src',star_on);
    else jQuery('#star_'+s+'_'+i).attr('src',star_off);
   }
   break;
  case 'out' :
   for(var i=1;i<6;i++){
    if(typeof fb_r[s]!='undefined' && i<=fb_r[s]) jQuery('#star_'+s+'_'+i).attr('src',star_on);
    else jQuery('#star_'+s+'_'+i).attr('src',star_off);
   }
   break;
  case 'click' :
   fb_r[s]=r;
   jQuery('#rating_'+s).val(r);
   break;
 }
}

function load_comments(id){
 $('#comment_post_ID').val(id);
 $('#video-comments').html('<p>Loading comments&hellip;</p>');

 $.getJSON(_siteRoot+'json-comments.php?id='+id,function(data){
  var html='';
  $('#video-comments').html('<p>There are no comments for this video.</p>');
  $.each(data,function(){
   html+='<div class="comment"><p class="author colour">'+this.comment_author+' says:</p><p class="date">'+this.date+'</p><p class="message">'+this.comment_content+'</p></div>';
   html+='<div class="hr"></div>';
	});
  if(html!='')
   $('#video-comments').html(html);
 });
}

// STYLING FILE INPUTS 1.0 | Shaun Inman <http://www.shauninman.com/> | 2007-09-07
if(!window.SI){var SI={};};
SI.Files={
 htmlClass:'SI-FILES-STYLIZED',
 fileClass:'file',
 wrapClass:'cabinet',
 
 fini:false,
 able:false,
 init:function(){
  this.fini=true;
  
  var ie=0 //@cc_on+@_jscript_version
  if(window.opera || (ie && ie<5.5) || !document.getElementsByTagName){return;}
  this.able=true;
  
  var html=document.getElementsByTagName('html')[0];
  html.className+=(html.className!=''?' ':'')+this.htmlClass;
 },
 stylize:function(elem){
  if(!this.fini){this.init();};
  if(!this.able){return;};
  
  elem.parentNode.file=elem;
  elem.parentNode.onmousemove=function(e){
   if(typeof e=='undefined') e=window.event;
   if(typeof e.pageY=='undefined' &&  typeof e.clientX=='number' && document.documentElement){
    e.pageX=e.clientX+document.documentElement.scrollLeft;
    e.pageY=e.clientY+document.documentElement.scrollTop;
   };
   var ox=oy=0;
   var elem=this;
   if(elem.offsetParent){
    ox=elem.offsetLeft;
    oy=elem.offsetTop;
    while(elem=elem.offsetParent){
     ox+=elem.offsetLeft;
     oy+=elem.offsetTop;
    };
   };
   var x=e.pageX-ox;
   var y=e.pageY-oy;
   var w=this.file.offsetWidth;
   var h=this.file.offsetHeight;
   this.file.style.top=y-(h/2) +'px';
   this.file.style.left=x-(w-30)+'px';
  };
 },
 stylizeById:function(id){
  this.stylize(document.getElementById(id));
 },
 stylizeAll:function(){
  if(!this.fini){this.init();};
  if(!this.able){return;};
  
  var inputs=document.getElementsByTagName('input');
  for(var i=0;i<inputs.length;i++){
   var input=inputs[i];
   if(input.type=='file' && input.className.indexOf(this.fileClass)!=-1 && input.parentNode.className.indexOf(this.wrapClass)!=-1)
    this.stylize(input);
  };
 }
};

function set_cookie(name,value,expires,path,domain,secure){
 var today=new Date();
 today.setTime(today.getTime());
 if(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':'');
}

function get_cookie(check_name){
 var a_all_cookies=document.cookie.split(';');
 var a_temp_cookie='';
 var cookie_name='';
 var cookie_value='';
 var b_cookie_found=false;

 for(i=0;i<a_all_cookies.length;i++){
  a_temp_cookie=a_all_cookies[i].split('=');
  cookie_name=a_temp_cookie[0].replace(/^\s+|\s+$/g,'');

  if(cookie_name==check_name){
   b_cookie_found=true;
   if(a_temp_cookie.length>1)
    cookie_value=unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g,''));
   return cookie_value;
   break;
  }
  a_temp_cookie=null;
  cookie_name='';
 }
 if(!b_cookie_found)
  return null;
}

function delete_cookie(name,path,domain){
 if(get_cookie(name))
  document.cookie=name+'='+((path)?';path='+path:'')+
  ((domain)?';domain='+domain:'')+';expires=Thu,01-Jan-1970 00:00:01 GMT';
}








/**
 * --------------------------------------------------------------------
 * jQuery-Plugin "pngFix"
 * Version: 1.1, 11.09.2007
 * by Andreas Eberhard, andreas.eberhard@gmail.com
 *                      http://jquery.andreaseberhard.de/
 *
 * Copyright (c) 2007 Andreas Eberhard
 * Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)
 *
 * Changelog:
 *    11.09.2007 Version 1.1
 *    - removed noConflict
 *    - added png-support for input type=image
 *    - 01.08.2007 CSS background-image support extension added by Scott Jehl, scott@filamentgroup.com, http://www.filamentgroup.com
 *    31.05.2007 initial Version 1.0
 * --------------------------------------------------------------------
 * @example $(function(){$(document).pngFix();});
 * @desc Fixes all PNG's in the document on document.ready
 *
 * jQuery(function(){jQuery(document).pngFix();});
 * @desc Fixes all PNG's in the document on document.ready when using noConflict
 *
 * @example $(function(){$('div.examples').pngFix();});
 * @desc Fixes all PNG's within div with class examples
 *
 * @example $(function(){$('div.examples').pngFix( { blankgif:'ext.gif' } );});
 * @desc Fixes all PNG's within div with class examples, provides blank gif for input with png
 * --------------------------------------------------------------------
 */
(function($) {
jQuery.fn.pngFix=function(settings) {
 settings=jQuery.extend({blankgif:'blank.gif'},settings);
 var ie55=(navigator.appName=='Microsoft Internet Explorer' && parseInt(navigator.appVersion)==4 && navigator.appVersion.indexOf('MSIE 5.5')!=-1);
 var ie6=(navigator.appName=='Microsoft Internet Explorer' && parseInt(navigator.appVersion)==4 && navigator.appVersion.indexOf('MSIE 6.0')!=-1);

 if(jQuery.browser.msie&&(ie55||ie6)){
  //fix images with png-source
  /*jQuery(this).find("img[@src$=.png]").each(function() {
   jQuery(this).attr('width',jQuery(this).width());
   jQuery(this).attr('height',jQuery(this).height());
   var prevStyle='';
   var strNewHTML='';
   var imgId=(jQuery(this).attr('id'))?'id="'+jQuery(this).attr('id')+'" ' : '';
   var imgClass=(jQuery(this).attr('class'))?'class="'+jQuery(this).attr('class')+'" ' : '';
   var imgTitle=(jQuery(this).attr('title'))?'title="'+jQuery(this).attr('title')+'" ' : '';
   var imgAlt=(jQuery(this).attr('alt'))?'alt="'+jQuery(this).attr('alt')+'" ' : '';
   var imgAlign=(jQuery(this).attr('align'))?'float:'+jQuery(this).attr('align')+';' : '';
   var imgHand=(jQuery(this).parent().attr('href'))?'cursor:hand;' : '';
   if (this.style.border) {
    prevStyle += 'border:'+this.style.border+';';
    this.style.border='';
   }
   if (this.style.padding) {
    prevStyle += 'padding:'+this.style.padding+';';
    this.style.padding='';
   }
   if (this.style.margin) {
    prevStyle += 'margin:'+this.style.margin+';';
    this.style.margin='';
   }
   var imgStyle=(this.style.cssText);
   strNewHTML += '<span '+imgId+imgClass+imgTitle+imgAlt;
   strNewHTML += 'style="position:relative;white-space:pre-line;display:inline-block;background:transparent;'+imgAlign+imgHand;
   strNewHTML += 'width:'+jQuery(this).width()+'px;'+'height:'+jQuery(this).height()+'px;';
   strNewHTML += 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader'+'(src=\''+jQuery(this).attr('src')+'\', sizingMethod=\'scale\');';
   strNewHTML += imgStyle+'"></span>';
   if (prevStyle != ''){
    strNewHTML='<span style="position:relative;display:inline-block;'+prevStyle+imgHand+'width:'+jQuery(this).width()+'px;'+'height:'+jQuery(this).height()+'px;'+'">'+strNewHTML+'</span>';
   }
   jQuery(this).hide();
   jQuery(this).after(strNewHTML);
  });*/
  // fix css background pngs
  //jQuery(this).find("*").each(function(){
  jQuery(this).each(function(){
   var bgIMG=jQuery(this).css('background-image');
   if(bgIMG.indexOf(".png")!=-1){
    var iebg=bgIMG.split('url("')[1].split('")')[0];
    jQuery(this).css('background-image','none');
    jQuery(this).get(0).runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+iebg+"',sizingMethod='"+settings.sizingMethod+"')";
   }
  });
  //fix input with png-source
  /*jQuery(this).find("input[@src$=.png]").each(function() {
   var bgIMG=jQuery(this).attr('src');
   jQuery(this).get(0).runtimeStyle.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader'+'(src=\''+bgIMG+'\', sizingMethod=\'scale\');';
     jQuery(this).attr('src', settings.blankgif)
  });*/
 }
 return jQuery;
};
})(jQuery);
$(function(){if(jQuery.browser.msie && jQuery.browser.version<7){
// $('div#top h1 a,div#content h2,div.column-third h4,p.date,div#media-centre-tabs a,div.popup').pngFix({sizingMethod:'crop'});
// $('div#top,div#content div.wrap').pngFix({sizingMethod:'scale'});
}});

