var jQ = jQuery;

function wipp_onLoad() {
	jQ('.wGraphicalBg').each(wipp_wGraphicalBg);
	jQ("label").each(wipp_label);
}

function wipp_wGraphicalBg() {
	var o, sClassPrefix, aClasses, sWrap, i, sClass;

	o = jQ(this);
	sClassPrefix = o.attr('wpClassPrefix');
	aClasses = [
		'frame_out', 'bg',
		'side_l', 'side_r', 'side_t', 'side_b',
		'cnr_tl', 'cnr_tr', 'cnr_bl', 'cnr_br',
		'frame_pad', 'frame_size', 'frame_in'
	];

	sWrap = '<div class="wGraphicalBgWrapper">';
	for (i=0; i < aClasses.length; i++) {
		sClass = aClasses[i];
		if (sClassPrefix) {sClass += ' ' + sClassPrefix + '-' + sClass;}
		sWrap += '<div class="' + sClass + '">';
	}
	for (i=0; i < aClasses.length; i++) {
		sWrap += '</div>';
	}
	sWrap += '</div>';
	
	o.wrap(sWrap);
}

function wipp_label() {
	var oLabel, oField;
	var nLabelHeight, nFieldHeight, nOffset;
	oLabel = jQ(this);
	if (oLabel.css('display') == 'block') {
		switch (oLabel.css('float')) {
			case 'left': 
			case 'right':
				oField = oLabel.next().eq(0);
				nLabelHeight = oLabel.height();
				nFieldHeight = oField.height() + 2;
				nOffset = (nLabelHeight - nFieldHeight) / 2;
				if (nOffset > 0) {
					oField.css('margin-top', nOffset + 'px');
				}
				else if (nOffset < 0) {
					oLabel.css('margin-top', (-nOffset) + 'px');
				}
			break;
		}
	}
}

jQ(wipp_onLoad);
