var COLUMNS_SELECTORS		= ['.columns'],
	COLUMN_COUNTS			= [2],
	COLUMNS_GAPS			= [30],
	COLUMNS_LIST_SELECTORS	= ['.offices-list'],
	COLUMN_LIST_COUNTS		= [3],
	COLUMNS_LIST_GAPS		= [45],
	COLUMNS_LIST_WIDTHS		= [270];

function iniColumns() {
	if (!SUPPORT_CSS_COLUMNS) {
		
		for (var i=0; i<COLUMNS_SELECTORS.length; i++) {
			var selector	= COLUMNS_SELECTORS[i],
				count		= COLUMN_COUNTS[i],
				gap			= COLUMNS_GAPS[i];
			
			$$(selector).each(function(el) {
				createColumns(el, count, gap);
			});
		}
	}	
	
	//list only working in chrome, so just do it this way
	for (var i=0; i<COLUMNS_LIST_SELECTORS.length; i++) {
		var selector	= COLUMNS_LIST_SELECTORS[i],
			count		= COLUMN_LIST_COUNTS[i],
			gap			= COLUMNS_LIST_GAPS[i],
			width		= COLUMNS_LIST_WIDTHS[i];
		
		$$(selector).each(function(el) {
			createListColumns(el, count, gap, width);
		});
	}
		
	
}

function createColumns(_el, _count, _gap) {
	var content				= _el.get('html'),
		contentArray		= [],
		contentPartLength	= Math.ceil(content.length / _count),
		startAt				= 0,
		endAt				= contentPartLength + 1,
		addToBeginning		= '';
	
	for (var i=0; i<_count; i++) {
		
		//find next space
		for (var j=endAt; j<content.length; j++) {
			var testChar	= content.charAt(j);
			
			var regEx	= /\s/;
			
			if (testChar.match(regEx)) {
				endAt	= j;
				break;
			}
		}
		
		//add to beginning is opening tag if neccessary
		var string			= addToBeginning + content.substring(startAt, endAt);
		
		var regExOpening	= new RegExp('<[^\/>][^>]*>', 'gi');
		var startTags		= string.match(regExOpening);
		
		var regExClosing	= new RegExp('</[^\/>][^>]*>', 'gi');
		var endTags			= string.match(regExClosing);
		
		addToBeginning		= '';
		
		var currentString	= string; //string to find indexof last tag
		var addedEndTags	= [];
		var prevIndexOf		= string.length-1;
		
		for (var j=startTags.length-1; j>=0; j--) {
			var tag			= startTags[j];
			var indOf		= currentString.lastIndexOf(tag);
			var tagName		= tag.substring(1, tag.length-1);
			
			currentString	= currentString.substring(0, indOf);
			
			var testString	= string.substring(indOf, string.length);
			
			var regExClosing= new RegExp('</' + tagName + '>', 'gi');
			var closingTag	= testString.match(regExClosing);
			
			if (!closingTag) {
				//log('closing not found :(');
				addedEndTags.push(tagName);
			} else {
				//log('closing found :)');
			}
		}
	
		for (var k=0; k<addedEndTags.length; k++) {
			var tagName		= addedEndTags[k];
			var endTag		= '</' + tagName + '>';
			var startTag	= '<' + tagName + '>';
			
			addToBeginning	= startTag + addToBeginning;
			
			string			= string + endTag;
		}
		
		contentArray.push(string);
		
		startAt			= endAt + 1;
		endAt			= startAt + contentPartLength + 1;
		
		if (endAt > content.length - 1) endAt = content.length - 1;
	}
	
	var colWidth	= Math.round( (_el.getSize().x / _count) - (_gap * (_count-1)) ),
		html		= createColumnsHtmlFor(contentArray, colWidth, _gap);
	
	_el.set('html', html);
}

function createColumnsHtmlFor(_array, _colWidth, _gap) {
	var startTag	= '<div class="css-col" style="width:'+_colWidth+'px;margin-left:'+_gap+'px">',
		endTag		= '</div>',
		html		= '';
		
	for (var i=0; i<_array.length; i++) {
		if (i == 0) startTag = '<div class="css-col" style="width:'+_colWidth+'px;">'
		else startTag = '<div class="css-col" style="width:'+_colWidth+'px;margin-left:'+_gap+'px">'
		
		var content	= _array[i];
		html += startTag + content + endTag;
	}
	
	return html;
}

function createListColumns(_el, _count, _gap, _width) {
	var liArray		= _el.getChildren('li'),
		numItems	= liArray.length,
		itemsInCol	= Math.floor(numItems / _count),
		colWidth	= _width > -1 ? _width : Math.round( (_el.getParent().getSize().x / _count) - (_gap * (_count-1)) ),
		html		= '<div class="css-col" style="width:'+colWidth+'px;">';
	
	var rest 		= numItems%_count,
		colCount	= 1,
		inColCount	= 0;
	
	for (var i=0; i<numItems; i++) {
		html += '<li>' + liArray[i].get('html') + '</li>';
		var inCol	= itemsInCol;
		
		if (rest > 0) {
			inCol++;
		}
		
		inColCount++;
		
		//if ((i + 1)%inCol == 0 && i < liArray.length-1) {
		if (inColCount == inCol && i < liArray.length-1) {
			html += '</div>';
			html += '<div class="css-col" style="width:'+colWidth+'px;margin-left:'+_gap+'px">';
			
			if (rest > 0) rest--;
			colCount++;
			inColCount	= 0;
		}
	}
	
	html += '</div>';
	
	_el.set('html', html);
}

	
	/*
	/<[^\/>][^>]*><\/[^>]+>/
	*/



