var gridHeight = 0;
var selectedGridElements = new Array();
var GRID_ELEMENT_WIDTH = 231;
var GRID_ELEMENT_HEIGHT = 116;
var activeGridElement = null;
var siteGallery = '../site/gallery/';
var mainTemplateLoad = '../site/scripts/loadmaintemplate.php?'+Math.random();
var flicrHtml = '../site/scripts/flickrload.html';
var flicrUrl = 'http://www.flickr.com/photos/52287307@N04';
var flickAttempts = 0;
var flickTimeout = new Array();
var flickErrorHtml = '<div class="flickError">There was an error receiving flickr images. It\'s not our fault but You can visit our profile on flicr at <a href="http://www.flickr.com/photos/52287307@N04">http://www.flickr.com/photos/52287307@N04</a></div>';
var siteImg = '../site/img/';

var twitpicUser = 'wearespring';
var twitPicUrl = 'http://twitpic.com/show/thumb/';
var twitPicUserUrl = 'http://twitpic.com/photos/'+twitpicUser;

var twitterUsername = 'wearespring';
var twitterUrl = '../site/scripts/twitter.php';
var twitterHeaderLink = 'http://twitter.com/wearespring';

var itunesScript = '../site/scripts/get_itunes.php';
var itunesObj = {artist_name:'',album_name:'',album_url:'',song_name:''};
var itunesTimeouts = new Array();


var CMS_posts = new Array();
var CMS_BLOG_URL = '../site/scripts/wpget.php';
var CMS_currPost = 0;
var CMS_postCount = 0;

var timeouts = new Array();

function gridImageType() {
	this.picUrl='';
	this.imgUrl='';
	this.sharing=0;
	this.blogEntry='';
	this.imgHeight=0;
	this.imgWidth=0;
	this.rolloverImgHeight=0;
	this.rolloverImgWidth=0;
	this.xPos;
	this.yPos;
	this.xSize;
	this.ySize;
	this.xPadding;
	this.yPadding;
	this.yPaddingRollover;
	this.id;
	this.contentType='Image';
	this.selection=Array();
	this.blogEntryTarget=0;
	this.imgUrlTarget=0;
	this.rolloverImg='';
}
function gridApiType() {
	this.sharing=0;
	this.blogEntry='';
	this.apiType;
	this.headerAlign='center';
	this.xPos;
	this.yPos;
	this.xSize;
	this.ySize;
	this.xPadding;
	this.yPadding;
	this.id;
	this.contentType='Api';
	this.selection=Array();
	this.blogEntryTarget=0;
}

function gridVideoType() {
	this.headerBody = '';
	this.subheaderBody = '';
	this.headerAlign = 'left';
	this.headerSize = 'Small';
	this.textBody = '';
	this.sharing=0;
	this.playerType;
	this.embed;
	this.blogEntry='';
	this.xPos;
	this.yPos;
	this.xSize;
	this.ySize;
	this.xPadding;
	this.yPadding;
	this.id;
	this.contentType='Video';
	this.selection=Array();
	
	this.hasHeader = hasHeader;
	this.hasSubheader = hasSubheader;
	
	function hasHeader() { return ( this.headerBody!='');}
	function hasSubheader() { return ( this.subheaderBody!='');}
	
	this.blogEntryTarget=0;
}

function gridTextType() {	
	this.headerBody = '';
	this.subheaderBody = '';
	this.headerAlign = 'left';
	this.headerSize = 'Small';
	this.headerUrl='';
	this.imgHeight=0;
	this.imgWidth=0;
	this.textBody = '';
	this.imgUrl='';
	this.imgRolloverUrl='';
	this.type='Text';
	this.xPos;
	this.yPos;
	this.xSize;
	this.ySize;
	this.sharing=0;
	this.blogEntry='';
	this.id;
	this.contentType='Text';
	this.selection=Array();
	this.hasHeader = hasHeader;
	this.hasSubheader = hasSubheader;
	
	this.blogEntryTarget=0;
	this.headerUrlTarget=0;
	
	function hasHeader() { return ( this.headerBody!='');}
	function hasSubheader() { return ( this.subheaderBody!='');}
}

function gridObjectStorage() {
	var storage = new Array();
	this.add = add;
	this.remove = remove;
	this.getElem = getElem;
	this.getStorage = getStorage;
	this.refresh = refresh;
	this.clear = clear;
	this.findSelection = findSelection;
	function clear() {
		$.each(storage,function(k,value){
			$('#'+value.id).remove();
		});
		storage = Array();
		$('#hoverdiv').remove();
	}
	function add(id,obj) {
		remove(id);
		storage.push({
			'obj': obj,
			'id':id
		});
	};
	function remove(id) {
		storage = jQuery.grep(storage,function(value) { return value.id != id;	});
	};
	function getElem(id) {
		var elem;
		$.each(storage,function(k,value) {
			if(id == value.id) elem = value.obj;
		});
		return elem;
	};
	function getStorage() {
		return storage;
	}
	function setStorage(s) {
		storage = s;
	}
	function refresh() {
		var heights = new Array();

		$.each(storage,function(k,value) {
			if(value.obj!=undefined && value.obj!=null) {
				heights.push(value.obj.yPos + value.obj.ySize);
				restoreFromObj(value.obj);
			}
			
		});	
		gridHeight = heights.max();
		
		$.each(storage,function(k,value) {
		//	heights.push(value.obj.yPos + value.obj.ySize);
			if(value.obj!=undefined && value.obj!=null) {
				if((value.obj.yPos + value.obj.ySize) == gridHeight) {
					$('#'+value.obj.id).addClass('lastbottom');
				} 
			}
		});	
		
		closeAll();
		$('#hoverdiv').remove();
	}
	function findSelection(x,y) {
		var found = Array();
		$.each(storage,function(k,v) {
			$.each(v.obj.selection,function(i,item) {
				if(x==item.x && y==item.y) {
					found.push(v.id);
				//	$('#'+v.id).css('opacity','0.2');
				}
			});
		});
		return found;
	}
}
function gridImageType() {
	this.imgUrl;
}
function gridStore() {
	var storage = new Array();
	this.getStorage = getStorage;
	this.remove = remove;
	this.refresh = refresh;
	this.add = add;
	this.isInStore = isInStore;
	this.toggle = toggle;	
	this.clear = clear;
	
	function remove(elem) {
		storage = jQuery.grep(storage, function(value) {return value != elem;});
		$('#'+elem).removeClass('cellSelected');
	}
	function clear() {
		$.each(storage,function(k,value) {
			remove(value);
		});
	}
	function add(elem) {
		storage.push(elem);
	}	
	function toggle(elem) {
		if(!isInStore(elem)) add(elem);
		else remove(elem);
	}
	function isInStore(elem) {
		var isIn = false;
		$.each(storage,function(k,value) {
			if(value == elem) isIn = true;
		});
		return isIn;
	}
	function getStorage() {
		return storage;
	}
	function refresh() {
		$('#gridcontainer').children('.gridobject').removeClass('cellSelected');
		$.each(storage,function(k,value) {
			$('#'+value).addClass('cellSelected');
		});
	}
}
function selectionStore() {
	var storage = Array();	
	var x_size;
	var y_size;
	var min_x;
	var min_y;
	var isCorrect;
	var id;	
	this.getStorage = getStorage;
	this.remove = remove;
	this.add = add;
	this.isInStore = isInStore;
	this.toggle = toggle;
	this.getSizes = getSizes;
	this.getMinX = getMinX;
	this.getMinY = getMinY;
	this.getMaxX = getMaxX;
	this.getMaxY = getMaxY;
	this.calculate = calculate;
	this.clear = clear;	
	
	function clear() {
		storage = Array();
		x_size = 0;
		y_size = 0;
		min_x = 0;
		min_y = 0;
		isCorrect = false;
		id = null;
		$.each($('.gridobject'),function() {
			$(this).removeClass('cellSelected');
		});
	};
	function getMinX(){
		var tmp=new Array();
		$.each(storage,function(k,value){
			tmp.push(value.x);
		});
		return tmp.min();
	};
	function getMinY(){
		var tmp=new Array();
		$.each(storage,function(k,value){
			tmp.push(value.y);
		});
		return tmp.min();
	};	
	function getMaxX(){
		var tmp=new Array();
		$.each(storage,function(k,value){
			tmp.push(value.x);
		});
		return tmp.max();
	};
	function getMaxY(){
		var tmp=new Array();
		$.each(storage,function(k,value){
			tmp.push(value.y);
		});
		return tmp.max();
	};
	function remove(x,y) {
		storage = jQuery.grep(storage, function(value) {
			return ((value.x*10+value.y) != (x*10+y));
		});
		calculate();
	};
	function add(x,y) {
		if (!isInStore(x, y)) {
			storage.push({
				"x": x,
				"y": y
			});
		}			
		calculate();
	};
	function isInStore(x,y) {
		var isIn = false;
		$.each(storage,function(k,value) {
			if((value.x == x) && (value.y == y)) isIn = true;
		});		
		return isIn;
	};
	function toggle(x,y) {
		if (isInStore(x, y)) {
			remove(x, y);
		} else {
			add(x, y);
		}		
	};
	function getSizes() {
		if(countRowsCols()) {
			return {"x":x_size,"y":y_size,"min_x":min_x,"min_y":min_y,"id":id};
		} else {
			return false;
		}
	};
	function calculate() {
		x_size = getMaxX() - getMinX() + 1;
		y_size = getMaxY() - getMinY() + 1;
		min_x = getMinX();
		min_y = getMinY();
		id = 'gr';
		$.each(storage,function(k,value){
			id+= 'r'+value.y+'c'+value.x;
		});	
	}
	function getStorage() { return storage;}
}
var SS = new selectionStore();
var GS = new gridStore();
var GOS = new gridObjectStorage();

function restoreFromObj(obj) {
	var divId = obj.id;
	var el_width = obj.xSize;
	var el_height = obj.ySize;
	var el_top	= obj.yPos;
	var el_left	= obj.xPos;

	var map = {'Image':'img','Video':'video','Text':'txt','Api':'Api'};
	switch(obj.contentType) {
		case 'Image':
			type = 'img';
		break;
		case 'Video':
			type = 'video';
		break;
		case 'Text':
			type = 'txt';
		break;
		case 'Api':
			type = 'api';
		break;
		default:
			type=undefined;
		break;
	}
//	if(type==undefined) alert('Fatal error object '+obj.id+' is undefined');
	var gridBox = $('<div class="newGridObject"></div>').appendTo('#gridcontainer');	
	if(inCMS) {
		var tab = '<div class="gridObjectTab"><a href="javascript:;" id="cut'+divId+'" class="cutToClipboard"></a><a href="javascript:;" id="copy'+divId+'" class="copyToClipboard"></a><a href="javascript:;" id="pref'+divId+'" class="preferences"></a><a href="javascript:;" onclick="destroy(\''+divId+'\');" class="closePre"></a>&nbsp;&nbsp;</div>';
		$(gridBox).append(tab);
		$('#pref'+divId).click(function(event){
			preferences(divId, event);
		});
		$('#copy'+divId).click(function() {
			copyToClipboard(divId,false);
		});
		$('#cut'+divId).click(function() {
			copyToClipboard(divId,true);
		});
		/*
		$('#close'+divId).click(function(event){
			deleteElement(divId, event);
		});	
		*/
		$('#gridTypeSelect').fadeOut(100);
		if (type == 'img' && obj.sharing==1) {			
			$(gridBox).mouseenter(function(){
				clearTimeout(timeouts[divId]);
				$(gridBox).children('.gridObjectTab').show();
				$(gridBox).children('.gridObjectSharingHidden').animate({
					'height': '34px',
					'padding-top': '16px'
				},50);
				$(gridBox).children('.gridObjectSharingHidden').children('.social').css('height','15px').show();
			});
		
			$(gridBox).mouseleave(function(){
				clearTimeout(timeouts[divId]);
				timeouts[divId] = setTimeout("tabFadeout('"+divId+"')",1000); 
				$(gridBox).children('.gridObjectSharingHidden').animate({
					'height': '0px',
					'padding-top': '0px'
				},30);
				$(gridBox).children('.gridObjectSharingHidden').children('.social').css('height','0px').hide();
			});
		} else {
			$(gridBox).mouseenter(function(){
				clearTimeout(timeouts[divId]);
				$(gridBox).children('.gridObjectTab').show();
			});
		
			$(gridBox).mouseleave(function(){
				clearTimeout(timeouts[divId]);
				timeouts[divId] = setTimeout("tabFadeout('"+divId+"')",1000); 
			});
		}
	} else {
		if (type == 'img' && obj.sharing==1) {
			$(gridBox).mouseenter(function(){				
				$(gridBox).children('.gridObjectSharingHidden').animate({
					'height': '34px',
					'padding-top': '16px'
				},50,function() {
					$(gridBox).children('.gridObjectSharingHidden').show();
					$(gridBox).children('.gridObjectSharingHidden').children('.social').css('height','15px').show();
				});
			});
			$(gridBox).mouseleave(function(){
				$(gridBox).children('.gridObjectSharingHidden').animate({
					'height': '0px',
					'padding-top': '0px'
				},30,function() {
					$(gridBox).children('.gridObjectSharingHidden').hide();
					$(gridBox).children('.gridObjectSharingHidden').children('.social').css('height','0px').hide();
				});
			});
		}
	}

	$(gridBox).attr('id',divId);
	$(gridBox).css('width',el_width+'px');
	$(gridBox).css('height',el_height+'px');
	$(gridBox).css('top',el_top+'px');
	$(gridBox).css('left',el_left+'px');
	$(gridBox).css('backgroundColor','#fff');
	$(gridBox).addClass(type);

	var mailto = 'mailto:?subject=Saw this on SpringStudios.com...&body=I saw this on SpringStudios.com and thought you might like it:%0D%0A'+obj.blogEntry;
	var fB = 'http://www.facebook.com/share.php?src=Spring%20Studios%20Website&u='+obj.blogEntry;
	var twit = 'http://twitter.com/home?status=have%20a%20look%20at%20it!%20-%20'+obj.blogEntry;		
			
	//new object
	
	switch(type) {
		case 'txt':
		
			var preHref = '';
			var postHref = '';
			var hpreHref = '';
			var hpostHref = '';
			if(obj.blogEntry!='') {
				preHref = '<a href="'+obj.blogEntry+'">';
				postHref = '</a>';
				if(obj.blogEntryTarget!=null && obj.blogEntryTarget!='undefined' && obj.blogEntryTarget=='1') {
					preHref = '<a href="'+obj.blogEntry+'" target="_blank">';
				}				
				
			}		
			
			if(obj.headerUrl!='' && obj.headerUrl!=undefined) {
				hpreHref = '<a href="'+obj.headerUrl+'">';
				hpostHref = '</a>';
				if (obj.headerUrlTarget != null && obj.headerUrlTarget != 'undefined' && obj.headerUrlTarget == '1') {
					hpreHref = '<a href="' + obj.headerUrl + '" target="_blank">';
				}			
				
			}	
			var HH=0;//header height
			var SH=0;//subheader height
			var HR=0;//hr height
			var SA=0;//sharing height
			var CP=40;//content padding
			var SHP=0;//subheader padding

			$(gridBox).append('<div class="gridObjectHeader"></div>');
			$(gridBox).append('<div class="gridObjectSubHeader"></div>');
			$(gridBox).append('<div class="gridObjectHR"><hr></div>');
			
			///assets/components/gallery/connector.php?action=web/phpthumb&w=114&h=75&zc=1&far=1&src=
			if(obj.type=='Image') {
				$(gridBox).append('<div class="gridObjectContent"><div class="centered"><img id="img_'+obj.id+'" src="'+siteGallery+obj.imgUrl+'" alt="'+obj.imgUrl+'" style="height: 0px;" /></div></div>');	
			} else {
				$(gridBox).append('<div class="gridObjectContent">'+obj.textBody+'</div>');
			}	
			
			var subst=0;
			
			
			var head=obj.headerBody;
			var subhead=obj.subheaderBody;
			
			var blogt = '';
			if(obj.blogEntryTarget!=null && obj.blogEntryTarget!='undefined' && obj.blogEntryTarget=='1') {
				blogt = ' target="_blank" ';
			}
			
			$(gridBox).append('<div class="gridObjectSharing"><hr><ul class="socialWhite"><li><a href="' + mailto + '" class="shareMail"></a></li><li><a href="' + fB + '" target="_blank" class="shareFb"></a></li><li><a href="' + twit + '" target="_blank" class="shareTw"></a></li><li class="shareGotoblog"><a href="' + obj.blogEntry + '" '+blogt+'>Go to blog</a></li></ul></div>');
					
			if (obj.sharing == 1) {
				SA = $(gridBox).children('.gridObjectSharing').show().height()+10;
				subst+=40;
			}	else {
				$(gridBox).children('.gridObjectSharing').hide();
			}	
			if(obj.headerSize=='Large') {
				$(gridBox).children('.gridObjectHeader').addClass('Large');
				obj.headerAlign = 'center';
			} else {
				obj.headerAlign = 'left';
			}
			if(obj.headerBody!='' && obj.headerBody!=undefined) {			
				$(gridBox).children('.gridObjectHeader').html(hpreHref+nl2br(head)+postHref).css('text-align',obj.headerAlign).show();				
				
			} else {			
				$(gridBox).children('.gridObjectHeader').css('padding-bottom','0').hide();				
			}
			if(obj.subheaderBody!='' && obj.subheaderBody!=undefined) {				
				$(gridBox).children('.gridObjectSubHeader').css('padding-bottom','10px').html(hpreHref+nl2br(subhead)+hpostHref).css('text-align',obj.headerAlign).show();	
				if(obj.headerBody=='' || obj.headerBody== undefined) {
					$(gridBox).children('.gridObjectSubHeader').css('padding-top','20px');
				}
				subst+=30;
				SHP=10;
			}  else {
				$(gridBox).children('.gridObjectSubHeader').css('padding','0').html('').hide();
			}
			if(obj.headerBody!='' && obj.headerBody!=undefined && obj.textBody !='' && obj.textBody!=undefined) {
				$(gridBox).children('.gridObjectHR').show();
				HR = 1;
				subst+=1;
			} else {
				$(gridBox).children('.gridObjectHR').hide();
				HR = 0;
			}
			/*
		
			*/
			Cufon.set('fontFamily', 'ITC Franklin Gothic Std');
			Cufon.replace($(gridBox).children('.gridObjectHeader'), { fontFamily: 'ITC Franklin Gothic Std' });			
			Cufon.set('fontFamily', 'Univers LT 47 CondensedLt');
			Cufon.replace($(gridBox).children('.gridObjectSubHeader'), {fontFamily: 'Univers LT 47 CondensedLt'});
			Cufon.now();
			//HR = $(gridBox).children('.gridObjectHR').height();
			HH = $(gridBox).children('.gridObjectHeader').height()+20;
			SH = $(gridBox).children('.gridObjectSubHeader').height();	
			
			var SHw=0;
			var HHw=0;
			$(gridBox).children('.gridObjectHeader').children('cufon').each(function(){
				HHw+= $(this).width();
			});
			$(gridBox).children('.gridObjectSubHeader').children('cufon').each(function(){
				SHw+= $(this).width();
			});
			
			//var CH = obj.ySize-subst-SHP-CP;	
			var CH = obj.ySize-HH-SH-HR-SA-SHP-CP;	
			
			var LH = parseInt($(gridBox).children('.gridObjectContent').css('line-height'));			
			var CUT = CH % LH;
			cHeight = CH-CUT;			
		//	$(gridBox).children('.gridObjectContent').append('<!-- obj.ySize '+obj.ySize+ ' SH '+SH+ '  HH '+HH+ '  HR '+HR+ ' SA '+SA+ ' SHP ' + SHP +  ' CP ' +CP+  ' SHw '+SHw+' HHw '+HHw+' -->');
			$(gridBox).children('.gridObjectContent').css('height',+cHeight+'px');
			
			if(obj.type=='Image') {
				$(gridBox).children('.gridObjectContent').children('.centered').children('img').css('height',cHeight+'px');
				var tmpW = $(gridBox).children('.gridObjectContent').children('.centered').width();
				var tmpWI = $(gridBox).children('.gridObjectContent').children('.centered').children('img').width();
				if(tmpWI>tmpW) {
					$(gridBox).children('.gridObjectContent').children('.centered').children('img').css('width',tmpW+'px');
					$(gridBox).children('.gridObjectContent').children('.centered').children('img').css('height',parseInt(cHeight * (tmpW/tmpWI))+'px');
					$(gridBox).children('.gridObjectContent').children('.centered').css('padding-top',parseInt(cHeight-(cHeight * (tmpW/tmpWI)))/2+'px');
				}			
				if(obj.imgRolloverUrl!=null && obj.imgRolloverUrl!='undefined' && obj.imgRolloverUrl!='') {
					$('#'+obj.id).mouseenter(function() {					
						$('#img_'+obj.id).attr('src',siteGallery+obj.imgRolloverUrl);					
					});
					$('#'+obj.id).mouseleave(function() {
						$('#img_'+obj.id).attr('src',siteGallery+obj.imgUrl);
					});
				}
							
			}
			
			var go = new gridTextType();
			go.type = obj.type;
			go.xPos = el_left;
			go.yPos = el_top;
			go.xSize = el_width;
			go.ySize = el_height;
			go.headerBody = obj.headerBody;
			go.subheaderBody = obj.subheaderBody;
			go.headerSize = obj.headerSize;
			go.headerAlign = obj.headerAlign;
			go.headerUrl = obj.headerUrl;
			go.textBody = obj.textBody;
			go.imgUrl = obj.imgUrl;
			go.sharing = obj.sharing;
			go.type=obj.type;
			go.blogEntry = obj.blogEntry;	
			go.contentType = obj.contentType;
			go.selection=obj.selection;
			go.id = divId;
			go.imgRolloverUrl = obj.imgRolloverUrl;
			
			go.blogEntryTarget	= obj.blogEntryTarget;
			go.headerUrlTarget	= obj.headerUrlTarget;
			
			GOS.add(divId,go);
		//	preferences(divId,window.event);
		break;
		case 'img':
			var preHref = '';
			var postHref = '';
			var preHrefImg = '';
			var postHrefImg = '';
	
			if(obj.blogEntry!='') {
				var preHref = '<a href="'+obj.blogEntry+'">';
				if(obj.blogEntryTarget!=null && obj.blogEntryTarget!='undefined' && obj.blogEntryTarget=='1') {
					preHref = '<a href="'+obj.blogEntry+'" target="_blank">';	
				}				
				var postHref = '</a>';
			}	
		
			if(obj.imgUrl!='') {
				var preHrefImg = '<a href="'+obj.imgUrl+'">';
				if(obj.imgUrlTarget!=null && obj.imgUrlTarget!='undefined' && obj.imgUrlTarget=='1') {
					preHrefImg = '<a href="'+obj.imgUrl+'" target="_blank">';
				}
				var postHrefImg = '</a>';
			}	
		
			var blogt = '';
			if(obj.blogEntryTarget!=null && obj.blogEntryTarget!='undefined' && obj.blogEntryTarget=='1') {
				blogt = ' target="_blank" ';
			}
	

			
			$(gridBox).append('<div class="gridObjectContent"></div>');
			$(gridBox).children('.gridObjectContent').css('padding','0');
			$(gridBox).children('.gridObjectContent').html('<div class="centered">'+preHrefImg+'<img id="img_'+obj.id+'" src="'+siteGallery+obj.picUrl+'" alt="" />'+postHrefImg+'</div>');
			

			
			$(gridBox).append('<div class="gridObjectSharingHidden"></div>');
			if(obj.sharing==1) {
				var mailto = 'mailto:?subject=Saw this on SpringStudios.com...&body=I saw this on SpringStudios.com and thought you might like it:%0D%0A'+obj.blogEntry;
				var fB = 'http://www.facebook.com/share.php?src=Spring%20Studios%20Website&u='+obj.blogEntry;
				var twit = 'http://twitter.com/home?status=have%20a%20look%20at%20it!%20-%20'+obj.blogEntry;
				
				$(gridBox).children('.gridObjectSharingHidden').html('<ul class="social"><li><a href="'+mailto+'" class="mailIco"></a></li><li><a href="'+fB+'" target="_blank" class="fbIco"></a></li><li><a href="'+twit+'" target="_blank" class="twitIco"></a></li><li class="gotoBlog"><a href="'+obj.blogEntry+'" '+blogt+'>go to blog</a></li></ul>').css('width','100%').css('height','34px').css('opacity','0.5');			
			} else {
				$(gridBox).children('.gridObjectSharingHidden').html('').css('width','0px').css('height','0px');
			}
			var diff = 0;
			var diff2= 0;
			var mH = parseInt(obj.ySize);
			if(obj.imgHeight!=null && obj.imgHeight!='undefined' && obj.imgHeight!='') {				
				var cH = obj.imgHeight;
			} else {
				var cH = obj.ySize;
			}
			
			var cH2 = obj.rolloverImgHeight;
			diff = parseInt((parseInt(mH) - parseInt(cH)) / 2);		
			diff2= parseInt((parseInt(mH) - parseInt(cH2)) / 2);		
			obj.yPadding = diff;	
			obj.yPaddingRollover = diff2;

			$(gridBox).children('.gridObjectContent').children('.centered').css('padding-top',obj.yPadding+'px');
			if(obj.rolloverImg!=null && obj.rolloverImg!='undefined' && obj.rolloverImg!='') {
				$('#'+obj.id).mouseenter(function() {					
					$('#img_'+obj.id).fadeOut(100,function(){						
						$('#img_'+obj.id).attr('src',siteGallery+obj.rolloverImg);		
						$('#'+obj.id).children('.gridObjectContent').children('.centered').css('padding-top',obj.yPaddingRollover+'px');	
						$('#img_'+obj.id).fadeIn(100);
					});			
				});
				$('#'+obj.id).mouseleave(function() {
					$('#img_'+obj.id).fadeOut(100,function(){
						$('#img_'+obj.id).attr('src',siteGallery+obj.picUrl);
						$('#'+obj.id).children('.gridObjectContent').children('.centered').css('padding-top',obj.yPadding+'px');
						$('#img_'+obj.id).fadeIn(100);
					});
					
				});
			} 
			var go = new gridImageType();
			go.xPos = el_left;
			go.yPos = el_top;
			go.xSize = el_width;
			go.ySize = el_height;
			go.sharing=obj.sharing;
			go.imgHeight=obj.imgHeight;
			go.imgWidth=obj.imgWidth;
			go.id = divId;
			go.picUrl=obj.picUrl;
			go.imgUrl=obj.imgUrl;
			go.blogEntry=obj.blogEntry;
			go.yPadding = obj.yPadding;
			go.yPaddingRollover = obj.yPaddingRollover;
			go.contentType = obj.contentType;
			go.selection=obj.selection;
			go.blogEntryTarget	= obj.blogEntryTarget;
			go.imgUrlTarget	= obj.imgUrlTarget;
			go.rolloverImg = obj.rolloverImg;
			go.rolloverImgWidth=obj.rolloverImgWidth;
			go.rolloverImgHeight=obj.rolloverImgHeight;
			GOS.add(divId,go);
		//	preferences(divId,window.event);
		break;
		case 'video':
			var HH=0;
			var SH=0;
			var SC=0;
			var SA=0;

			var preHref = '';
			var postHref = '';
			if(obj.blogEntry!='' && obj.blogEntry!=null) {
				var preHref = '<a href="'+obj.blogEntry+'">';
				if(obj.blogEntryTarget!=null && obj.blogEntryTarget!='undefined' && obj.blogEntryTarget=='1') {
					preHref = '<a href="'+obj.blogEntry+'" target="_blank">';
				}
				
				var postHref = '</a>';
			}
			
			$(gridBox).append('<div class="gridObjectHeader"></div>');
			$(gridBox).append('<div class="gridObjectSubHeader"></div>');
			$(gridBox).append('<div class="gridObjectContent"></div>');
			$(gridBox).append('<div class="gridObjectSubContent">'+obj.textBody+'</div>');
			$(gridBox).append('<div class="gridObjectSharing"></div>');
			$(gridBox).children('.gridObjectContent').css('padding','0').css('overflow','visible');
			
			
			
			if (obj.sharing == 1) {
				var mailto = 'mailto:?subject=Saw this on SpringStudios.com...&body=I saw this on SpringStudios.com and thought you might like it:%0D%0A'+obj.blogEntry;
				var fB = 'http://www.facebook.com/share.php?src=Spring%20Studios%20Website&u='+obj.blogEntry;
				var twit = 'http://twitter.com/home?status=have%20a%20look%20at%20it!%20-%20'+obj.blogEntry;	
		
				var blogt='';
				if (obj.blogEntryTarget != null && obj.blogEntryTarget != 'undefined' && obj.blogEntryTarget == '1') {
					blogt = ' target="_blank" ';
			
				}
				
				$('#'+obj.id).children('.gridObjectSharing').html('<hr><ul class="socialWhite"><li><a href="' + mailto + '" class="shareMail"></a></li><li><a href="' + fB + '" target="_blank" class="shareFb"></a></li><li><a href="' + twit + '" target="_blank" class="shareTw"></a></li><li class="shareGotoblog"><a href="' + obj.blogEntry + '" '+blogt+'>Go to blog</a></li></ul></div>').show();
				SA = $('#'+obj.id).children('.gridObjectSharing').height()+10;
			}	
			

			
			if(obj.sharing==1 || obj.textBody!='') {	
			
				$('#'+obj.id).children('.gridObjectSubContent').show();
				$('#'+obj.id).children('.gridObjectSubContent').css('margin-bottom','45px');
			} else {
	
				$('#'+obj.id).children('.gridObjectSubContent').css('margin-bottom','0px');
				$('#'+obj.id).children('.gridObjectSubContent').hide();
			}					
			
			var VH=0;
			var PH=0;
			var SHPT=0;//subheader padding-top
			
			
			$('#'+obj.id).children().hide(); 
			switch(obj.playerType) {
				case 1:
					obj.headerSize='Small';
					VH = 347;
					PH = 0;
					$('#'+obj.id).children('.gridObjectContent').show();
				break;
				case 2:							
					VH = 347;
					PH = 118;
					obj.headerSize='Small';
				//	if(obj.headerSize=='Large') SHPT=10;
					$('#'+obj.id).children('.gridObjectContent').show();
				//	$('#'+obj.id).children('.gridObjectHeader').css('height','30px').css('padding','20px 20px 15px 20px').show();
				$('#'+obj.id).children('.gridObjectHeader').show();
					$('#'+obj.id).children('.gridObjectSubHeader').css('padding-top',SHPT+'px').show();	
				break;
				case 3:
					PH = 118;
					VH = 288;
					obj.headerSize='Small';
				//	if(obj.headerSize=='Large') SHPT=10;
					$('#'+obj.id).children('.gridObjectContent').show();
				//	$('#'+obj.id).children('.gridObjectHeader').css('height','30px').css('padding','20px 20px 15px 20px').show();
					$('#'+obj.id).children('.gridObjectHeader').show();
					
					
					$('#'+obj.id).children('.gridObjectSubHeader').css('padding-top',SHPT+'px').show();	
					if (obj.sharing == 1) {
						$('#' + obj.id).children('.gridObjectSharing').show();
					}		
				break;
				case 4:
					VH = 347;
					PH = 164;
					obj.headerSize='Large';
					$('#'+obj.id).children('.gridObjectContent').show();
				//	$('#'+obj.id).children('.gridObjectHeader').css('height','55px').css('padding','20px 20px 15px 20px').show();
					$('#'+obj.id).children('.gridObjectHeader').show();
					$('#'+obj.id).children('.gridObjectSubHeader').css('padding-top',SHPT+'px').show();
					if (obj.sharing == 1) {
						$('#' + obj.id).children('.gridObjectSharing').show();
					}
					if(obj.headerSize=='Large') {
					//	$('#'+obj.id).children('.gridObjectHeader').css('padding-top','38px')
					}
				break;
				case 5:				
					VH = 288;
					PH = 164;
					obj.headerSize='Large';
					$('#'+obj.id).children('.gridObjectContent').show();
				//	$('#'+obj.id).children('.gridObjectHeader').css('height','55px').css('padding','20px 20px 15px 20px').show();
					$('#'+obj.id).children('.gridObjectHeader').show();
					$('#'+obj.id).children('.gridObjectSubHeader').css('padding-top',SHPT+'px').show();	
					
					if(obj.headerSize=='Large') {
					//	$('#'+obj.id).children('.gridObjectHeader').css('padding-top','38px')
					}
					if (obj.sharing == 1) {
						$('#' + obj.id).children('.gridObjectSharing').show();
					}
					$('#'+obj.id).children('.gridObjectSubContent').show();	
				break;
			}
			
			
			if(obj.headerSize=='Large') {
				$('#'+obj.id).children('.gridObjectHeader').addClass('Large');
				obj.headerAlign='center';			
			} else {
				obj.headerAlign = 'left';
			}

			if(obj.headerBody!='' && obj.headerBody!=undefined) {
				$('#'+obj.id).children('.gridObjectHeader').html(preHref + nl2br(obj.headerBody)+ postHref).css('text-align',obj.headerAlign);	
				if (obj.subheaderBody != '' && obj.subheaderBody != undefined) {
					$('#' + obj.id).children('.gridObjectSubHeader').css('padding-bottom', '10px').html(preHref + nl2br(obj.subheaderBody) + postHref).css('text-align', obj.headerAlign);
					$('#' + obj.id).children('.gridObjectSubHeader').show();					
				} else {
					$('#'+obj.id).children('.gridObjectSubHeader').css('padding-bottom','0px').hide();
				}
				
				Cufon.set('fontFamily', 'ITC Franklin Gothic Std');
				Cufon.replace($('#'+obj.id).children('.gridObjectHeader'), { fontFamily: 'ITC Franklin Gothic Std' });
				Cufon.set('fontFamily', 'Univers LT 47 CondensedLt');
				Cufon.replace($('#'+obj.id).children('.gridObjectSubHeader'), {fontFamily: 'Univers LT 47 CondensedLt'});
				Cufon.now();
			} else {
				$('#'+obj.id).children('.gridObjectHeader').css('padding','0').hide();
				$('#'+obj.id).children('.gridObjectSubHeader').css('padding','0').hide();
			}
	
			$('#'+obj.id).children('.gridObjectContent').css('height',VH+'px').css('z-index',0).css('overflow','visible').html(obj.embed).show();	
			
					
			$('#'+obj.id).children('.gridObjectContent').css('padding','0');		
			$('#'+obj.id).children('.gridObjectContent').css('margin-top',PH+'px');	
			$('#'+obj.id).children('.gridObjectContent').children('p').remove();
			$('#'+obj.id).children('.gridObjectContent').children('object').css('width',obj.xSize+'px').css('height',VH+'px');		
			$('#'+obj.id).children('.gridObjectContent').children('object').attr('width',obj.xSize+'px').attr('height',VH+'px');		
			$('#'+obj.id).children('.gridObjectContent').children().attr('width',obj.xSize+'px').attr('height',VH+'px');	
			$('#'+obj.id).children('.gridObjectContent').children('object').children('embed').attr('width',obj.xSize+'px').attr('height',VH+'px');
			if ($.browser.msie) {
				setTimeout("IEcorrection('"+divId+"','"+obj.xSize+"','"+VH+"')",1000);
			} else {
				$('#'+obj.id).children('.gridObjectContent').children('object').prepend('<param name="wmode" value="transparent">');
				$('#'+obj.id).children('.gridObjectContent').children('object').children('embed').attr('wmode','transparent');	
				$('#'+obj.id).children('.gridObjectContent').children('object').children('embed').attr('width',obj.xSize+'px').attr('height',VH+'px');				
			}

			$('#'+obj.id).children('.gridObjectContent').children('object').css('z-index',0);
			$('#'+obj.id).children('.gridObjectContent').css('position','absolute').css('top','0px');
			$('#'+obj.id).children('.gridObjectContent').children('object').css('position','absolute');

			
			var go = new gridVideoType();
			go.headerBody = obj.headerBody;
			go.subheaderBody = obj.subheaderBody;
			go.headerAlign = obj.headerAlign;
			go.headerSize = obj.headerSize;
			go.textBody=obj.textBody;
			go.playerType=obj.playerType;
			go.xPos = el_left;
			go.yPos = el_top;
			go.xSize = el_width;
			go.ySize = el_height;
			go.sharing=obj.sharing;
			go.embed=obj.embed;
			go.id = divId;
			go.blogEntry=obj.blogEntry;
			go.selection=obj.selection;
			go.blogEntryTarget=obj.blogEntryTarget;
			GOS.add(divId,go);
		//	preferences(divId,window.event);
		break;
		case 'api':
		
			var go = new gridApiType();
			go.xPos = el_left;
			go.yPos = el_top;
			go.xSize = el_width;
			go.ySize = el_height;
			go.sharing=1;
			go.id = divId;
			go.contentType=obj.contentType;
			go.blogEntry=obj.blogEntry;
			go.apiType=obj.apiType;
			go.headerAlign=obj.headerAlign;
			go.selection=obj.selection;
			go.blogEntryTarget=obj.blogEntryTarget;
					
			$(gridBox).append('<div class="gridObjectHeader Large"></div>');
			$(gridBox).append('<div class="gridObjectSubheader"></div>');
			$(gridBox).append('<div class="gridObjectHR"><hr></div>');
			$(gridBox).append('<div class="gridObjectContent"></div>');
			$(gridBox).append('<div class="gridObjectSharing"></div>');	

			if(go.apiType=='4') {
				$(gridBox).append('<div class="twitterlink"><a href="'+twitterHeaderLink+'" target="_blank">&nbsp;</a></div>');
			}
					
			var mailto = 'mailto:?subject=Saw this on SpringStudios.com...&body=I saw this on SpringStudios.com and thought you might like it:%0D%0A'+go.blogEntry;
			var fB = 'http://www.facebook.com/share.php?src=Spring%20Studios%20Website&u='+go.blogEntry;
			var twit = 'http://twitter.com/home?status=have%20a%20look%20at%20it!%20-%20'+go.blogEntry;		
			
			
			$(gridBox).children('.gridObjectHeader').css('text-align',go.headerAlign).css('padding-bottom','16px');
			$(gridBox).children('.gridObjectSharing').css('bottom','10px').css('height','17px');
			switch (go.apiType) {
				case '1':
					// LAYOUT!
					$(gridBox).children('.gridObjectSubheader').hide();
					$(gridBox).children('.gridObjectHR').hide();
					$(gridBox).children('.gridObjectHeader').html('TWITPIC').css('font-size', '66px');
					$(gridBox).children('.gridObjectSharing').html('<div class="gotoapi"><a href="'+twitPicUserUrl+'" target="_blank">Go to twitpic</a></div>');
					Cufon.set('fontFamily', 'ITC Franklin Gothic Std');
					Cufon.replace($(gridBox).children('.gridObjectHeader'), { fontFamily: 'ITC Franklin Gothic Std' });
					Cufon.now();
					
					twitpic.users.show({
						'username': twitpicUser
					}, function(user){
						$(gridBox).children('.gridObjectContent').css('padding-top','0').html('<div class="centered"><a href="'+twitPicUserUrl+'" target="_blank"><img src="' + twitPicUrl + user.images[0].short_id + '" alt="" style="width: 192px; height: 192px;" /></a></div>');
					});
					
					addTopIcon(go.id,'camera');
					
					break;
				case '2':
					$(gridBox).children('.gridObjectSubheader').hide();
					$(gridBox).children('.gridObjectHR').hide();
					$(gridBox).children('.gridObjectHeader').html('FLICKR').css('font-size', '66px');
					$(gridBox).children('.gridObjectSharing').html('<div class="gotoapi"><a href="'+flicrUrl+'" class="gotoflickr" target="_blank">Go to flickr</a></div>');
					Cufon.set('fontFamily', 'ITC Franklin Gothic Std');
					Cufon.replace($(gridBox).children('.gridObjectHeader'), { fontFamily: 'ITC Franklin Gothic Std' });
					Cufon.now();					
					$('#ficlrData').contents().find('#flck').children('script').remove();
					var html = $('#ficlrData').contents().find('#flck').html();
					
					if(html==null || html=='' || html==undefined || html==' ') {
						flickTimeout[divId] = setTimeout("flick2ndAttempt('"+divId+"')",200);
					}
					$(gridBox).children('.gridObjectContent').css('padding','0').html('<div class="centered"><div class="flck">' + html + '</div></div>');
					$(gridBox).children('.gridObjectContent').children('.centered').css('margin-left', '2px');
					
						
					addTopIcon(go.id,'camera');
					
					break;
				case '3':
					
					$(gridBox).children('.gridObjectHeader').css('font-size', '33px').removeClass('Large').html();
					$(gridBox).children('.gridObjectHeader').css('padding','20px 20px 0 20px').css('text-align', go.headerAlign);
					$(gridBox).children('.gridObjectSubheader').css('padding','0 20px 20px 20px').css('font-family', 'Times New Roman').css('font-size', '20px').css('text-transform', 'uppercase').html();
					$(gridBox).children('.gridObjectSubheader').show();
					$(gridBox).children('.gridObjectHR').show();
					$(gridBox).children('.gridObjectContent').css('bottom','10px').html('');
					$(gridBox).children('.gridObjectSharing').css('bottom','15px').css('height','30px').html('<hr><ul class="socialWhite"><li><a href="'+mailto+'" class="shareMail"></a></li><li><a href="'+fB+'" target="_blank" class="shareFb"></a></li><li><a href="'+twit+'" target="_blank" class="shareTw"></a></li><li></li></ul><div class="gotoapi" style="bottom: 15px;"><a href="#" id="gotoblog'+obj.id+'"  target="_blank">Go to blog</a></div>');
					CMSloadPosts(go.id);
					
						
					addTopIcon(go.id,'blog');
					
					break;
					
				case '4':	
					$(gridBox).children('.gridObjectHeader').css('font-size','33px').css('padding','20px 20px 0 20px').removeClass('Large').html('TWITTER FEED');
					$(gridBox).children('.gridObjectHeader').css('text-align',go.headerAlign).css('font-weight','bold');
					$(gridBox).children('.gridObjectSubheader').css('font-size','18px').css('text-transform','uppercase').html();
					$(gridBox).children('.gridObjectSubheader').css('padding','0 20px 20px 20px').show();
					$(gridBox).children('.gridObjectHR').hide();
					$(gridBox).children('.gridObjectContent').html('');	
					$(gridBox).children('.gridObjectSharing').css('height','0px').hide();			
					twitterLoad(go.id);						
					addTopIcon(go.id,'twitter');
					break;
				case '5':
					$(gridBox).children('.gridObjectHeader').hide();
					$(gridBox).children('.gridObjectSubheader').hide();
					$(gridBox).children('.gridObjectHR').hide();
					$(gridBox).children('.gridObjectContent').html('');
					$(gridBox).children('.gridObjectSharing').hide();					
					iTunesGet(go.id);						
					addTopIcon(go.id,'itunes');				
					break;
				case '6':
					var clickWatch = '';
					if(go.blogEntry!=='undefined' && go.blogEntry!=null && go.blogEntry!='') {
					//	console.log(go);
						if(go.blogEntryTarget=='1') {
							clickWatch = '<a href="'+go.blogEntry+'" target="_blank" class="watchClick"></a>';
						} else {
							clickWatch = '<a href="'+go.blogEntry+'"  class="watchClick"></a>';
						}
					}
				
					$(gridBox).children('.gridObjectHeader').hide();
					$(gridBox).children('.gridObjectSubheader').hide();
					$(gridBox).children('.gridObjectHR').hide();
					$(gridBox).children('.gridObjectContent').html('<div id="watch_'+go.id+'" class="watch_api"></div>'+clickWatch);
					$(gridBox).children('.gridObjectSharing').hide();					
					watchStart('watch_'+go.id);						
				//	addTopIcon(go.id,'itunes');				
					break;
			}
			
		break;
	}
	activeGridElement = $('#'+divId);
	if(go!=undefined) {
		if((parseInt(go.xPos) + parseInt(go.xSize)) > 920) {
			$(gridBox).addClass('lastright');
		}
	}

	
	$(gridBox).show();
	
	
}
function IEcorrection(divId,x,y) {
	$('#'+divId).children('.gridObjectContent').children('object').prepend('<param name="wmode" value="transparent">');
	$('#'+divId).children('.gridObjectContent').children('object').children('embed').attr('wmode','transparent');	
	$('#'+divId).children('.gridObjectContent').children('object').children('embed').attr('width',x+'px').attr('height',y+'px');		
}

function delaySet(id,h) {
	
}


function iTunesGet(divId) {
	//console.log(itunesObj.artist_name);
	if (itunesObj!=null && itunesObj.artist_name !== undefined && itunesObj.artist_name !== null && itunesObj.artist_name != '' && itunesObj.song_name != '') {		
	
		var data = itunesObj;		
		var defImg = 'http://www.springstudios.com/site/img/itunes_default.jpg';
		if(data.album_url==='undefined') data.album_url = defImg;		
		
		$('#' + divId).children('.gridObjectContent').html('<div class="itunesBgd" id="it_bgd_' + divId + '"></div><div class="itunesDetails" id="itunesDetails_' + divId + '"><h4 class="itunes_h4" id="h4_' + divId + '"><img src="../site/img/nowplaying.png" alt="Now playing at Spring" /></h4><ul><li class="itunes_artist" id="artist_' + divId + '"></li><li class="itunes_track"  id="track_' + divId + '"></li></ul></div>');
  		$('#itunesDetails_' + divId).fadeIn(300,function() { 
            $('#artist_' + divId).html(data.artist_name);
            $('#track_' + divId).html(data.song_name);
            $('#it_bgd_' + divId).css('background', 'url(/assets/components/gallery/connector.php?action=web/phpthumb&w=178&h=178&zc=1&far=1&src=' + data.album_url + ') no-repeat 0 0');
            $('#itunesDetails_' + divId).animate({'color':'#ffffff'},3000,function() {
                $('#itunesDetails_' + divId).fadeOut(300);
            });            
        });
		if(inCMS) {
			Cufon.set('fontFamily', 'ITC Franklin Gothic Std');
			Cufon.replace($('#h4_' + divId), {
				fontFamily: 'ITC Franklin Gothic Std'
			});
			Cufon.now();			
		}

		
		$('#' + divId).addClass('hasITunes');
		
		$('#' + divId).children('.gridObjectContent').mouseenter(function(){
			$('#itunesDetails_' + divId).fadeIn();
		});
		$('#' + divId).children('.gridObjectContent').mouseleave(function(){
			$('#itunesDetails_' + divId).fadeOut();
		});
	} else {
		var defImg = 'http://www.springstudios.com/site/img/itunes_default.jpg';
		$('#' + divId).children('.gridObjectContent').html('<div class="itunesBgd" id="it_bgd_' + divId + '"></div>');
		$('#it_bgd_' + divId).css('background', 'url(' + defImg + ') no-repeat 0 0');	
				
	
		$.ajax({
			url: itunesScript,
			dataType: 'json',
			success: function(data){
				
				if(data.artist_name !== undefined && data.artist_name !== null && data.artist_name != '') {
					$('#' + divId).children('.gridObjectContent').html('<div class="itunesBgd" id="it_bgd_' + divId + '"></div><div class="itunesDetails" id="itunesDetails_' + divId + '"><h4 class="itunes_h4" id="h4_' + divId + '"><img src="../site/img/nowplaying.png" alt="Now playing at Spring" /></h4><ul><li class="itunes_artist" id="artist_' + divId + '"></li><li class="itunes_track"  id="track_' + divId + '"></li></ul></div>');
					$('#itunesDetails_' + divId).css('opacity', 0.80);
					$('#itunesDetails_' + divId).fadeIn(300, function(){
						$('#artist_' + divId).html(data.artist_name);
						$('#track_' + divId).html(data.song_name);
						//  $('#it_bgd_' + divId).css('background', 'url(' + data.album_url + ') no-repeat 0 0');
						$('#it_bgd_' + divId).css('background', 'url(/assets/components/gallery/connector.php?action=web/phpthumb&w=178&h=178&zc=1&far=1&src=' + data.album_url + ') no-repeat 0 0');
						$('#itunesDetails_' + divId).animate({
							'color': '#ffffff'
						}, 3000, function(){
							$('#itunesDetails_' + divId).fadeOut(300);
						});
					});
					
					if (inCMS) {
						Cufon.set('fontFamily', 'ITC Franklin Gothic Std');
						Cufon.replace($('#h4_' + divId), {
							fontFamily: 'ITC Franklin Gothic Std'
						});
						Cufon.now();
					}
					
					$('#' + divId).children('.gridObjectContent').mouseenter(function(){
						$('#itunesDetails_' + divId).fadeIn();
					});
					$('#' + divId).children('.gridObjectContent').mouseleave(function(){
						$('#itunesDetails_' + divId).fadeOut();
					});
					
				} else {
					$('#' + divId).children('.gridObjectContent').html('<div class="itunesBgd" id="it_bgd_' + divId + '"></div>');				
					$('#it_bgd_' + divId).css('background', 'url(' + defImg + ') no-repeat 0 0');	
					itunesObj = null;
				}
				itunesObj = data;
				$('#' + divId).addClass('hasITunes');				
				
			}
		});
	}
}

function twitterLoad(divId) {	
	$.ajax({
		url : twitterUrl,
		data : {'user':twitterUsername},
		dataType:'json',
		success:function(data) {
			twitterSet(divId,data);
		}
	});	
}
function twitterSet(divId,data) {
	if (data != null) {
		$.each(data, function(k, value){
			var time = value.created_at;
			
			var body = value.text;
			if (value.in_reply_to_screen_name != null) {
				body = body.replace('@' + value.in_reply_to_screen_name, '(<a href="http://twitter.com/' + value.in_reply_to_screen_name + '" class="twitReply">@' + value.in_reply_to_screen_name + '</a>)');
			}
			
			$('#' + divId).children('.gridObjectSubheader').css('padding-bottom', '30px').html('SPRING CHIRPS...');
			$('#' + divId).children('.gridObjectContent').css('height', '231px').css('padding', '0px 20px').append('<div class="twitter_box' + k + '"><div class="twitter_text' + k + '">' + body + '</div><div class="twitter_time' + k + '">' + time.substring(0, 16) + '</div>');
		});
	}
	Cufon.set('fontFamily', 'ITC Franklin Gothic Std');
	Cufon.replace($('#'+divId).children('.gridObjectHeader'), {fontFamily: 'ITC Franklin Gothic Std'});
	Cufon.set('fontFamily', 'Univers LT 47 CondensedLt');
	Cufon.replace($('#'+divId).children('.gridObjectSubheader'), {fontFamily: 'Univers LT 47 CondensedLt'});
	Cufon.now();	
}
function flick2ndAttempt(divId) {
//	alert(divId);
	$('#ficlrData').contents().find('#flck').children('script').remove();
	if(flickAttempts<=5) {
		var html = $('#ficlrData').contents().find('#flck').html();
		if(html==null || html=='' || html=='undefined' || html==' ' || html.trim == '' || html.trim.length==0) {
			flickTimeout[divId] = setTimeout("flick2ndAttempt('"+divId+"')",flickAttempts*500);
			flickAttempts= flickAttempts + 1;
		}		
	} else {
		var html = flickErrorHtml;
	}

	$('#'+divId).children('.gridObjectContent').css('padding','0').html('<div class="centered"><div class="flck">' + html + '</div></div>');
	$('#'+divId).children('.gridObjectContent').children('.centered').css('margin-left', '2px');
}

function ficlrLoad() {
	var frameId = 'ficlrData';
	if (window.ActiveXObject) {
		var io = document.createElement('<iframe id="' + frameId+'" name="' + frameId + '" src="'+flicrHtml+'" ></iframe>');
	} else {
		var io = document.createElement('iframe');
		io.id = frameId;
		io.name = frameId;
		io.src = flicrHtml;
	}
	io.style.position = 'absolute';
	io.style.top = '-1000px';
	io.style.left = '-1000px';
	document.body.appendChild(io);
}
function CMSloadPosts(divId){
	var res = false;
    $.ajax({
        url: CMS_BLOG_URL,
        dataType: 'json',
        success: function(data){
			if (data != null) {
				$.each(data.posts, function(i, item){
					CMS_posts.push({
						'id': item.id,
						'title': item.title,
						'content': item.content,
						'posturl': item.url,
						'excerpt': item.excerpt
					});
				});
				if (data.count > 0) {
					CMS_postCount = parseInt(data.count - 1);
					res = CMSchangeEntry(CMS_currPost, divId);
				}
			}
        }
    });
	return res;
}
function addTopIcon(divId,icon) {
	$('#'+divId).append('<div class="icon_'+icon+'"></div>');
}

function CMSchangeEntry(nr,divId){
	
	var title = CMS_posts[nr].title;
	if(title.length > 30) {
		title = title.substring(0,30) + '...';
	}
	
    $('#'+divId).children('.gridObjectHeader').html(title);
    $('#'+divId).children('.gridObjectContent').css('bottom','10px').html('<div class="apiBlogContent">'+CMS_posts[nr].content+'</div>');
	$('#gotoblog'+divId).attr('href',CMS_posts[nr].posturl);	
	
	$('#'+divId).children('.gridObjectSharing').css('bottom','15px');
	
	var mailto = 'mailto:?subject=Saw this on SpringStudios.com...&body=I saw this on SpringStudios.com and thought you might like it:%0D%0A'+CMS_posts[nr].posturl;
	var fB = 'http://www.facebook.com/share.php?src=Spring%20Studios%20Website&u='+CMS_posts[nr].posturl;
	var twit = 'http://twitter.com/home?status=have%20a%20look%20at%20it!%20-%20'+CMS_posts[nr].posturl;		
	
	$('#'+divId).children('.gridObjectSharing').children('ul.socialWhite').children('li').children('.shareMail').attr('href',mailto);
	$('#'+divId).children('.gridObjectSharing').children('ul.socialWhite').children('li').children('.shareFb').attr('href',fB);
	$('#'+divId).children('.gridObjectSharing').children('ul.socialWhite').children('li').children('.shareTw').attr('href',twit);
	
    $.each($('#'+divId).children('.gridObjectContent img'), function(){
        $(this).remove();
    });
	Cufon.set('fontFamily', 'ITC Franklin Gothic Std');
	Cufon.replace($('#' + divId).children('.gridObjectHeader'), {fontFamily: 'ITC Franklin Gothic Std'});
    if (CMS_posts[nr].excerpt != undefined && CMS_posts[nr].excerpt != '') {		
		var sub = CMS_posts[nr].excerpt;
		if(sub.length > 30) {
			sub = sub.substring(0,30) + '...';
		}		
        $('#'+divId).children('.gridObjectSubheader').html(sub);
         $('#'+divId).children('.gridObjectSubheader').children('a').remove();
		Cufon.set('fontFamily', 'Univers LT 47 CondensedLt');
		Cufon.replace($('#'+divId).children('.gridObjectSubheader'), {fontFamily: 'Univers LT 47 CondensedLt'});		
    }
    else {
        $('#'+divId).children('.gridObjectSubheader').html('').hide();
    }
	Cufon.now();
	
	/*
	var HH = $('#'+divId).children('.gridObjectHeader').height();
	var SH = $('#'+divId).children('.gridObjectSubheader').height();
	var SA = $('#'+divId).children('.gridObjectSharing').height();	
	var CH =  $('#'+divId).children('.gridObjectSharing').height();
	*/
	var elem = GOS.getElem(divId);	
	if(elem.ySize > 347) $('#'+divId).children('.gridObjectContent').children('.apiBlogContent').css('height','255px');

	return true;
}
Array.prototype.max = function() {
	var max = this[0];
	var len = this.length;
	for (var i = 1; i < len; i++) if (this[i] > max) max = this[i];
	return max;
};
Array.prototype.min = function() {
	var min = this[0];
	var len = this.length;
	for (var i = 1; i < len; i++) if (this[i] < min) min = this[i];
	return min;
};
Array.prototype.avg = function() {
	var av = 0;
	var cnt = 0;
	var len = this.length;
	for (var i = 0; i < len; i++) {
		var e = +this[i];
		if(!e && this[i] !== 0 && this[i] !== '0') e--;
		if (this[i] == e) {av += e; cnt++;}
	}
	return av/cnt;
};

function setMainBody() {
	if(inCMS) {
		
	} else {
		$('#home').append('<div id="gridcontainer"><div>');
	}
	$.ajax({
		url: mainTemplateLoad,
		dataType: 'json',
		success: function(data) {	
			GOS.clear();
			if(data.template!=null && data.template.length>0) {
				$.each(data.template,function(k,value) {
					GOS.add(value.id,value.obj);
				});
				if(inCMS) {
					$('#selectedTemplateName').html(data.templateName);
					$('#createdOn').html(data.createdOn);
					$('#modifiedOn').html(data.modifiedOn);
				}
			} else {
				// compatibility with previous version
				$.each(data,function(k,value) {
					GOS.add(value.id,value.obj);
				});
			}			
			GOS.refresh();
			if (!inCMS) {
				var h1 = $('#home h1').height();
				$('#home').css('height', gridHeight + h1 + 20 + 'px');
				$('#gridcontainer').css('height', gridHeight + 'px');
			}
		}
	});
	if(inCMS) {
		enableGrid();
	} else {
		$('#homeContent').hide();
	}
}
function nl2br(str) {
    var breakTag = '<br />'; 
    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ breakTag +'$2');
}


function iTunesCheck() {
	$.each($('.hasITunes'),function() {
		var id = $(this).attr('id');
		iTunesGet(id);
	});
	itunesObj=null;
	setTimeout("iTunesCheck()",20000);
}
function watchStart(divId) {
	
//	console.log(divId);

	var canvas = Raphael(divId, 232, 347);		
	//console.log(canvas);		
	canvas.image(siteImg+"watch/watch_background.png",0,0,232,347);
	var angleplus = 360, rad = Math.PI /180, cx = 117, cy =170, r=10, startangle = -90, angle = 10,x,y, endangle;
	var hour_hand = canvas.image(siteImg+"watch/hour_hand.png",105,131,20,40);
	var minute_hand = canvas.image(siteImg+"watch/minute_hand.png",110,110,8,60);
	var hand = canvas.image(siteImg+"watch/second_hand.png",108,101,9,92);		
	var time = new Date();		
	angle = time.getSeconds() * 6;		
	minute_hand.rotate(6 * time.getMinutes(),114,168);		
	var hr = time.getHours();
	if(hr>12)
		hr= hr -11;

	hour_hand.rotate(30 * time.getHours(),114,168);		
	var minute_angle = 6 + time.getMinutes()*6,hour_angle=0.5+time.getHours()*30;		
	setInterval(function(){
		angle = angle + 0.6;
		if (angle >= 360) {
			angle = 0;
			minute_hand.rotate(minute_angle, 114, 168);
			minute_angle = minute_angle + 6;
			hour_hand.rotate(hour_angle, 114, 168);
			hour_angle = hour_angle + 0.5;
		}
		if (minute_angle >= 360) {
			minute_angle = 0;
		}
		hand.rotate(angle, 113, 169);
	},100);

		
}
