// useful javascript functions
// create a popup window - 21/03/09 - gavin taylor
function popup(link, windowname, width, height, scrollbars, status, resizable, location, toolbar, menubar)
{
if(!window.focus) { return true; }
//check if additional options are set
if(windowname == null) { windowname = 'popup_window'; }
if(scrollbars == null) { scrollbars = 'no'; }
if(status == null) { status = 'no'; }
if(resizable == null) { resizable = 'no'; }
if(location == null) { location = 'no'; }
if(toolbar == null) { toolbar = 'no'; }
if(menubar == null) { menubar = 'no'; }
var href;
if(typeof(link) == 'string') { href=link; }
else { href=link.href; }
//window position
var posleft = (screen.width - width) / 2;
var postop = ((screen.height - height) / 2) / 2;
newwindow = window.open(href, windowname, 'width=' + width + ', height=' + height + ',left=' + posleft + ',top=' + postop + ',scrollbars=' + scrollbars + ',status=' + status + ',resizable=' + resizable + ',location=' + location + ',toolbar=' + toolbar + ',menubar=' + menubar + '');
if(window.focus) {newwindow.focus()}
return false;
}
//creates an HTTP Request Object to be used as required
function getXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
//display flash banner
function show_banner(banner_src, banner_width, banner_height)
{
document.write(' ');
}
function change_featured_tab(show_tab,tab_id,tab_links_id,no_of_tabs)
{
//loop through all tabs
for(i=1;i<=no_of_tabs;i++)
{
var tmp_tab_id = tab_id + i;
var tab_class = '';
var tab_content = 'none';
if(i == show_tab)
{
tab_class = 'active';
tab_content = 'block';
$('ul > li#' +tmp_tab_id+ ' > a').addClass(tab_class);
}else{
$('ul > li#' +tmp_tab_id+ ' > a').removeClass('active');
}
//activate tab
document.getElementById(tmp_tab_id).className = tab_class;
//show tab content
document.getElementById(tmp_tab_id + '_content').style.display = tab_content;
}
//update tabs class
document.getElementById(tab_links_id).className = tab_id + show_tab + '_active';
return false;
}
/* JQuery Plugins */
//check jQuery is available and loaded before trying to load any plugins
if(window.jQuery)
{
//$.getScript("/scripts/carousel_itemLists.php"); //get accolades and testimonials
document.write('');
// run the jcarousel
jQuery(document).ready(function() {
jQuery('#mycarousel_accolade').jcarousel({
auto:16, // 15
animation:'slow',
scroll: 1,
wrap: 'circular',
itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback_accolade},
itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
});
jQuery('#mycarousel_clients').jcarousel({
auto:15, // 16
animation:'slow',
scroll: 1,
wrap: 'circular',
itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback_clients},
itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
});
});
//drop down nav menu
var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;
function jsddm_open()
{
jsddm_canceltimer();
jsddm_close();
//check menu position and re-align dropdown if required
var nav_width = $(".navigation_level_one").width();
var nav_pos = $(".navigation_level_one").offset();
var menu_pos = $(this).offset();
var menu_ul = $(this).find('ul');
var remaining_space = nav_width - (menu_pos.left - nav_pos.left);
if(menu_ul.width() > remaining_space)
{
var left = (menu_pos.left - menu_ul.width()) + ($(this).width() - 3);
menu_ul.css( { 'left': left + 'px' });
}
//display the menu
ddmenuitem = menu_ul.css('display', 'block');
}
function jsddm_close()
{
if(ddmenuitem) ddmenuitem.css('display', 'none');
}
function jsddm_timer()
{ closetimer = window.setTimeout(jsddm_close, timeout);}
function jsddm_canceltimer()
{ if(closetimer)
{ window.clearTimeout(closetimer);
closetimer = null;}}
$(document).ready(function()
{ $('.navigation_level_1 > li').bind('mouseover', jsddm_open)
$('.navigation_level_1 > li').bind('mouseout', jsddm_timer)});
document.onclick = jsddm_close;
}
/* Media Rating - */
function default_rating(curval,default_message)
{
for (i=1;i<=5;i++)
{
//reset image
document.getElementById('rating' + i).style.backgroundPosition = '-203px -1px';
//update if required
if(i <= curval)
{
document.getElementById('rating' + i).style.backgroundPosition = '-220px -1px';
}
}
document.getElementById('pre_message').innerHTML = default_message;
}
function update_rating(rating_value,media)
{
switch(rating_value)
{
case 1:
message = 'Poor';
break;
case 2:
message = 'Nothing special';
break;
case 3:
if (media == 'video')
{
message = 'Worth watching';
}
else
{
message = 'Worth reading';
}
break;
case 4:
message = 'Pretty cool';
break;
case 5:
message = 'Excellent!';
break;
default:
message = 'unknown rating selected';
rating_value = 0;
break;
}
//update stars
for (i=1;i<=5;i++)
{
//reset image
document.getElementById('rating' + i).style.backgroundPosition = '-203px -1px';
//update if required
if(i<=rating_value)
{
document.getElementById('rating' + i).style.backgroundPosition = '-237px -1px';
}
}
//update message
document.getElementById('pre_message').innerHTML = message;
}
function submit_rating(rating_value,user_id,session_id,media_id,media_type)
{
//create AJAX request variable
var http = getXmlHttpObject();
//remove javascript calls from stars to prevent future submission
for (i=1;i<=5;i++)
{
document.getElementById('rating' + i).onmouseover = null;
document.getElementById('rating' + i).onmouseout = null;
document.getElementById('rating' + i).onclick = null;
document.getElementById('rating' + i).title = 'Thanks for rating!';
}
//submit rating details
http.open("POST", "/scripts/process_rating.php", true);
var parameters = "user_id=" + user_id + "&session_id=" + session_id + "&media_type=" + media_type + "&media_id=" + media_id +"&media_rating=" + rating_value;
http.onreadystatechange=function()
{
var message = 'Unable to process your request!';
if(http.readyState == 4)
{
if (http.status==200)
{
//update message
message = http.responseText;
//rewrite message as too long for the pre_message container
if(message=='Thanks for rating!') { message = 'Thank you.'; }
//update cookie
update_cookie('ukfast_' + media_type + '_ratings',media_id);
}
}
document.getElementById('pre_message').innerHTML = message;
}
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", parameters.length);
http.send(parameters);
}
function update_cookie(cookie_name,cookie_value)
{
var data = '';
//check if cookie exists
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(cookie_name + "=");
if (c_start!=-1)
{
c_start=c_start + cookie_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) c_end=document.cookie.length;
data = unescape(document.cookie.substring(c_start,c_end)) + "|";
}
}
//update cookie data
data = data + cookie_value;
//create new cookie to store data in
var exdate=new Date();
exdate.setDate(exdate.getDate()+300);
document.cookie = cookie_name + "=" + data + ";path=/;expires=" + exdate.toGMTString();
}
/* other */
function toggle_faq(id)
{
if (document.getElementById('faq_'+ id).style.display == 'none')
{
document.getElementById('faq_'+ id).style.display = '';
}
else
{
document.getElementById('faq_'+ id).style.display = 'none';
}
}
//tabs.js
function ddtabcontent(a){this.tabinterfaceid=a;this.tabs=document.getElementById(a).getElementsByTagName("a");this.enabletabpersistence=true;this.hottabspositions=[];this.currentTabIndex=0;this.subcontentids=[];this.revcontentids=[];this.selectedClassTarget="link"}ddtabcontent.getCookie=function(a){a=new RegExp(a+"=[^;]+","i");if(document.cookie.match(a))return document.cookie.match(a)[0].split("=")[1];return""};ddtabcontent.setCookie=function(a,b){document.cookie=a+"="+b+";path=/"}; ddtabcontent.prototype={expandit:function(a){this.cancelautorun();var b="";try{if(typeof a=="string"&&document.getElementById(a).getAttribute("rel"))b=document.getElementById(a);else if(parseInt(a)!=NaN&&this.tabs[a].getAttribute("rel"))b=this.tabs[a]}catch(c){alert("Invalid Tab ID or position entered!")}b!=""&&this.expandtab(b);switch(a){case "tab_1_title":document.getElementById("tab").style.backgroundPosition="0px 0px";break;case "tab_2_title":document.getElementById("tab").style.backgroundPosition= "0px -26px";break;case "tab_3_title":document.getElementById("tab").style.backgroundPosition="0px -53px";break;case "tab_4_title":document.getElementById("tab").style.backgroundPosition="0px -79px";break;case "tab_5_title":document.getElementById("tab").style.backgroundPosition="0px -106px";break}},cycleit:function(a,b){if(a=="next")var c=this.currentTabIndex0?this.currentTabIndex-1:this.hottabspositions.length- 1;typeof b=="undefined"&&this.cancelautorun();this.expandtab(this.tabs[this.hottabspositions[c]])},setpersist:function(a){this.enabletabpersistence=a},setselectedClassTarget:function(a){this.selectedClassTarget=a||"link"},getselectedClassTarget:function(a){return this.selectedClassTarget=="linkparent".toLowerCase()?a.parentNode:a},urlparamselect:function(a){return window.location.search.match(new RegExp(a+"=(\\d+)","i"))==null?null:parseInt(RegExp.$1)},gototab:function(a){switch(a){case "1":tab.expandit("tab_1_title"); break;case "2":tab.expandit("tab_2_title");break;case "3":tab.expandit("tab_3_title");break;case "4":tab.expandit("tab_4_title");break;case "5":tab.expandit("tab_5_title");break}},expandtab:function(a){var b=a.getAttribute("rel"),c=a.getAttribute("rev")?","+a.getAttribute("rev").replace(/\s+/,"")+",":"";this.expandsubcontent(b);this.expandrevcontent(c);for(c=0;c500&&this.hottabspositions.length>1)this.autoruntimer=setInterval(function(){e.autorun()},this.automodeperiod)}};
//scroll to a particular element
function scroll_to(element_id)
{
var xpos = 0;
var ypos = 0;
var element = document.getElementById(element_id);
if(element != null)
{
while(element != null){
xpos += element.offsetLeft;
ypos += element.offsetTop;
element = element.offsetParent;
}
window.scrollTo(xpos,ypos-5);
}
}