// theBox - The Box Office Javascript Core - Unobtrusive.Style.Baby!
// by Bramus!
var theBox = {

	// Main INIT
	init: function() {		
		// Step 1 : Define
		if (document.getElementById('formDefine')) { theBox.define.init(); }
		
		// Step 2 : Adjust
		if (document.getElementById('formAdjust')) { theBox.adjust.init(); }
		
		// Step 3 : Result
		// nothing
	
	},
	
	// Step 1 : Define
	define : {
	
		// set the eventhandlers
		init : function() {		
			document.getElementById('imagePosition').onchange	= theBox.define.changeExample;
			document.getElementById('formDefineSubmit').onclick	= theBox.define.checkForm;
		},
		
		// imagePosition Changed
		changeExample : function() {
			var val	= document.getElementById('imagePosition').value;
			var el	= document.getElementById('floatexample');
			
			el.src = ('images/examples/float_' + val + '.jpg');
			
			var el	= document.getElementById('imageURL');
			
			if ((el.value == "http://www.theboxoffice.be/images/palmtree.jpg") && (val == "right")) {
				el.value = "http://www.theboxoffice.be/images/palmtree-flipped.jpg";
			}
			
			if ((el.value == "http://www.theboxoffice.be/images/palmtree-flipped.jpg") && (val == "left")) {
				el.value = "http://www.theboxoffice.be/images/palmtree.jpg";
			}
		},
		
		// form submit
		checkForm : function() {
			
			// check here
			
			document.forms[0].submit();
			return false;
		}
	},
	
	// Step 2 : Adjust
	adjust : {
	
		// set the eventhandlers
		init : function() {		
		
			theBox.adjust.enableDrag();
			document.getElementById('formAdjustSubmit').onclick	= theBox.adjust.buildForm;
			
		},
		
		enableDrag : function() {
			var els		= getElementsByClassName(document, "div", "bramusbox");			
			var el		= document.getElementById('floatPosition');
			var swap	= false;
			
			if (el.value == "right") {
				swap	= true;
			}
			
			for (i = 0; i < els.length; i++) {
				Drag.bramus(els[i].id.substring(1),els[i].style.width.replace('px',''), swap);
			}
		},
	
		buildForm : function() {
		
			var tbo_code	= document.getElementById('tbo_code');
			var tbo_sample	= document.getElementById('tbo_sample');
			
			tbo_code.value	= '';
			
			var els		= getElementsByClassName(document, "div", "bramusbox");				
			
			for (i = 0; i < els.length; i++) {
				var local_tbo_sample	= tbo_sample.value;
				
				tbo_code.value += "    " + local_tbo_sample.replace('FINALWIDTH',els[i].style.width.replace('px','')) + "\n";
				
			}
			
			document.forms[0].submit();
			return false;
		}
	},
	
	// Step 3 : Result
	result : {
	
	}

}

// hook theBox to the window.onload event
window.onload = theBox.init;



// Functions not written by Bramus!

/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && document.all)? document.all : 
    oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}
